2013-10-03 4 views
0

저는 mingw32를 사용하여 크로스 컴파일하여 얻은 다른 2 개의 DLL에 연결되는 Windows DLL (기본 응용 프로그램은이 Windows DLL을 직접로드합니다)이 있습니다.크로스 컴파일 된 DLL이있는 Windows DLL

저는이 연결에 이상한 문제가 있습니다.

)는 I가 제 1 단면 컴파일 된 DLL funcA_firstdll() 및 funcB_firstdll (2 개 기능을 가지고 말해 마찬가지로 I은 제 2 단면 컴파일 된 DLL funcC_secdll() 및 funcD_secdll() 2 개 기능을 갖는다. Windows 메인 dll과 링크 할 때 링커 오류는 발생하지 않지만 dll은로드되지 않습니다.

종속성 워커를 사용하여 Windows DLL의 종속성을 확인하면 첫 번째와 두 번째 크로스 컴파일 된 dll이 빨간색으로 표시됩니다.

나는 녹색, 두 번째 크로스 DLL (funcC_secdll()와 funcD_secdll()) 레드로하는 DLL (funcA_firstdll()와 funcB_firstdll())에 존재하는 기능을보고하고 첫 번째 크로스 컴파일 된 DLL을 클릭합니다. 마찬가지로 두 번째로 교차 컴파일 된 dll을 클릭하면 dll (funcC_secdll() 및 funcD_secdll())에있는 함수가 녹색으로 표시되고 첫 번째 dll이 빨간색으로 표시됩니다.

왜 서로 연결할 수 없는지 이해할 수 없습니다. 크로스 컴파일 된 dll을 연결하는 다른 방법이 있습니까?

도움을 주시면 감사하겠습니다.

감사합니다,

Techtotie.

+0

독자적으로 해결했습니다. 실제로 mingw에 의해 생성 된 프록시 라이브러리가 MSVC에 의해 적절하게 해석되지 않은 문제가있었습니다. def 파일도 생성해야했습니다. 이 자습서를 따르십시오 http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs – TechTotie

답변

0

혼자서 해결했습니다.

실제로 mingw에 의해 생성 된 프록시 라이브러리의 문제점은 MSVC에 의해 올바르게 해석되지 않았습니다.

그래서 def 파일도 생성해야합니다. 이 자습서를 따르십시오.

http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs