Windows Dll与交叉编译DLL

时间:2013-10-03 11:26:56

标签: windows dll cross-compiling dllimport mingw32

我有一个windows dll(主应用程序直接加载这个windows dll)链接到另外两个dll,这是通过使用mingw32交叉编译获得的。

我正面临这种链接的奇怪问题。

假设我在第一个交叉编译的dll funcA_firstdll()和funcB_firstdll()中有2个函数 同样地,我在第二个交叉编译的dll funcC_secdll()和funcD_secdll()中有2个函数。 当与windows main dll链接时,我没有得到任何链接器错误,但dll没有被加载。

因此,如果我使用依赖性walker检查windows dll的依赖关系,我会看到第一个和第二个交叉编译的dll都是红色的。

当我点击第一个交叉编译的dll时,我看到该dll中存在的函数(funcA_firstdll()和funcB_firstdll())为绿色,第二个交叉dll(funcC_secdll()和funcD_secdll())为红色。 类似地,当我点击第二个交叉编译的dll时,我看到该dll中存在的函数(funcC_secdll()和funcD_secdll())为绿色,并且第一个交叉dll为红色。

我无法理解为什么他们无法相互联系。 是否有任何不同的方式来链接交叉编译的DLL。

感谢任何帮助。

此致

Techtotie。

1 个答案:

答案 0 :(得分:0)

我自己解决了。

实际上,由mingw生成的代理库的问题是MSVC无法正确解释。

所以不得不生成def文件。按照本教程

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