LinuxFreeBSD

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ LinuxFreeBSD ] in KIDS
글 쓴 이(By): uriel (조영익)
날 짜 (Date): 2003년 4월 28일 월요일 오후 05시 40분 19초
제 목(Title): Re: linux에서 mfc의 ATL COM APPWIZARD


>듣기로는 MFC에서 ATL COM APP WIZARD 타입의 프로젝트로 라이브러리를 
만들면,
>visual basic 혹은 delphi 등으로의 이식시, 일반적인 라이브러리처럼 바로
>include할 수 있게끔 해준다고 들었습니다. 혹시 리눅스로 conversion할
>때도 이것이 가능한가요?
>

 ATL COM으로 만드는 경우 delphi나 visual basic에서 바로 사용할 수 있는 
 이유는, ATL COM으로 만들어진 output은 windows의 regular dll과 같이 취급할 
 수 있기 때문입니다. 그리고 이런 식으로 다른 언어에서 사용할 수 있게 
 만드는 경우는 사용할 수 있는 변수 type의 제한을 강하게 받습니다. 일단 
 struct나 class를 매개변수로 사용하는 게 거의 안된다고 생각해야 하고
 (*거의*입니다), 배열의 경우는 safe array를 사용해야 하고, 문자열의 경우는 
 BSTR 타입을 사용해야 합니다.  리눅스랑은 상관 없는 이야기죠.
 

>만약 가능하다면, ATL COM 으로 생성된 결과물은 header file과 dll 혹은
>lib식의 파일인데, 이것을 어떤식으로 include할 수 있습니까.
>단순히 linux쪽 project folder에 넣어주고, 필요한 시점에서 include만 
해주면
>되는건가요? (__declspec(dllimport) 등을 사용하는 식으로... 근데 이
>매크로들은 linux에서 사용가능한지 모르겠네요)                  
>
 
 ATL COM으로 생성된 결과물은 dll 또는 exe밖에 없습니다. ATL COM (그러고 
 보니 좀 애매한 명칭이군요. ATL은 COM을 구현하는 한 방법일 뿐입니다)은 
 이 쪽 소스코드를 저 쪽에서 사용하자는 게 아니라, 이 바이너리 (DLL)를 
 그대로 다른 프로그램에서 사용하자는 방법입니다. 당연히 플랫폼과 OS에 아주 
 밀접한 관계가 있습니다.

 지금 하신 질문에 기본적으로 할 수 있는 대답은 No입니다만, 
 리눅스/유닉스에서 Internet Explorer를 돌릴 수 있냐고 물어보면 (IE는 
 COM으로 되어 있습니다. 이게 가능하면 말씀하신 것도 됩니다) 가능하긴 
 합니다. COM을 유닉스에서 돌아가게 해 주는 3rd party infrastructure가 
 나와 있는 것으로 알고 있습니다. 단지 이게 안쓰이는 것을 보면 여러가지 
 문제가 아주 많이 있는 것으로 생각합니다.

 

 
 
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.