VS.NET C++로 Win32 API 프로그램을 만들었는데 왜 mfc71.dll을 찾는걸까요?
글쓴이: tinywolf / 작성시간: 금, 2005/11/25 - 6:49오후
Win32 API로만 코드를 짠다음에..
stl 조금 썼구요..
gl과 glu를 조금 사용했습니다..
dll에서 창을 생성하고 화면에 표시하구요..
exe 프로그램은 파일로 읽은 값을 전달하는 역할만 합니다..
둘다 MFC 사용 옵션은 "표준 Windows 라이브러리 사용"으로 바꿔서 링크 안되게 했구요..
그런데 왜 실행할 때 mfc71.dll, msvcp71.dll, msvcr71.dll 들이 필요한 걸까요??
dll이 MFC 확장 DLL이라 그런 걸까요? (딴건 하나도 안 쓰고 단지 클래스를 export할려고..)
그냥 동적 DLL로 클래스를 전달할 수 있는 방법이 있다면 알고 싶습니다.
Create란 함수를 만들어서 생성된 클래스를 전달하도록 가능할까요?
흠.. 여러가지 시도해 봐야겠군요..
Forums:
설치된 폴더를 뒤져보면 depends.exe 라는 툴이 있습니다. 여기에
설치된 폴더를 뒤져보면 depends.exe 라는 툴이 있습니다. 여기에 실행 파일을 던져보면 왜 그 dll 이 필요한지를 알수 있습니다. ^^
-----------------------------------------------------------------------
GPL 오픈소스 윈도우용 이미지 뷰어 ZViewer - http://zviewer.wimy.com
블로그 : http://blog.wimy.com
dll 붙는 것이 싫으시다면 wtl을 시도해 보심이...http:
dll 붙는 것이 싫으시다면 wtl을 시도해 보심이...
http://sourceforge.net/projects/wtl/
클래스를 dll에서 export 한다면 mfc 확장 dll로 해야 하는데
클래스를 dll에서 export 한다면 mfc 확장 dll로 해야 하는데, 이렇게 하면mfcxx.dll를 링크하는 것으로 알고 있습니다. 이게 싫으면 dll에서 클래스가 아니라 함수만 export 해야죠.
https://wiki.ubuntu.com/KoreanTeam
[quote="zelon"]설치된 폴더를 뒤져보면 depends.exe
Visual C++.Net 2003은 아마 Default로 설치 하시면 Dependency Walker가 포함되지 않는 걸로 압니다.
Platform SDK를 설치하셨다면 아마 Bin폴더를 찾아 보시거나 따로 인터넷에서 구해서 사용하셔야 할듯 합니다.
그리고 MFC확장DLL이 아니라도 class를 DLL로 Export하는 것이 가능 한 것으로 압니다. 물론 class Export는 꽁수라서 다른 C++컴파일러나 언어에서 사용하기 힘들다는 점도 알아두셔야 할듯 합니다.
WTL은 꽤 쓸만합니다. :)
[quote="Anonymous"]그리고 MFC확장DLL이 아니라도
어떻게 하는 것인지 알 수 있을까요? 예전에 wrapping을 해볼까 하다가 결국 포기하고 mfc dll을 만든 기억이 있는데요. AFX_EXT_CLASS이 선언되면 dll에서 클래스를 사용할 수 있긴 한데, 이건 mfc 확장 dll이죠. 제가 가진 mfc 책도 예전 책이라 그냥 mfc 확장 dll을 사용해야 한다고만 되어 있네요. 아마도 무슨 꽁수로 될 것 같긴 한데 한 수 배우고 싶습니다.
https://wiki.ubuntu.com/KoreanTeam
[quote="uriel"][quote="Anonymous"]그리고
저도 궁금하네요...전에 핸드폰 문자 메시지 전송 클라이언트 만들때 C#이라서 DLLImport하고 마샬링 그리고 콜백함수는 델리게이트를 써서 완성을 했거든요.다른 방법이 있는 건가요...?
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
^^;
확장 dll로 되는지는 모르겠습니다.
저 같은경우는 인터페이스를 만들어서 생성하는 함수만 export 해주고 있습니다.
이렇게 할겨우 다른언어들로 불러들이수는 있지만 클래스 삭제에 대한것이 귀잖아 지는 단점이 있는데 그걸 다시 delete 를 재정의를 하서 지우게 하기도 했습니다. 생성도 마찬가지로 ^^:
그렇게 해서 lib 만들어서 쓰니 편하기는 하더군여 ^^;
그럼
MSDN의 Using dllimport and dllexport in C
MSDN의 Using dllimport and dllexport in C++ Classes라는 항목을 참고하세요. :)
Microsoft Specific
You can declare C++ classes with the dllimport or dllexport attribute. These forms imply that the entire class is imported or exported. Classes exported this way are called exportable classes.
The following example defines an exportable class. All its member functions and static data are exported:
Note that explicit use of the dllimport and dllexport attributes on members of an exportable class is prohibited.
@ C#에서의 Import가 가능할지는 저도 잘 모르겠군요.
@@ 옛날 Borland C++에도 DLL Export가 있었습니다만 VC랑 방법이 달랐던 걸로 기억합니다. 한마디로 Class Export는 호환성이 꽝이란 얘기죠...
@@@ zelon, byung82 잘 지내고 계시죠 ? ;)
^^;
흐흐흐..
잘지내고 있습니다 ^^;
요즘 넷비 삽질한다고 정신이 없습니다
그럼
댓글 달기