【发布时间】:2011-10-01 21:54:49
【问题描述】:
我的最终目标是从我的 MSVC 应用程序执行 g++ 以在运行时构建 dll。然后 g++ 创建的 dll 将由 MSVC 应用程序加载以供使用。
只是使用命令行弄乱了一些测试代码,我设法构建了一个 dll,但它似乎有一些问题:
C:\MinGW\bin>g++ -shared -o testdll.dll AIFuncs_RF.cpp AIFuncs_RF.def
Warning: resolving _CreateAIModule by linking to _CreateAIModule@4
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Warning: resolving _DestroyAIModule by linking to _DestroyAIModule@0
这是我的 def 文件:
LIBRARY "AIFuncs_RF"
EXPORTS
CreateAIModule=CreateAIModule @1
DestroyAIModule=DestroyAIModule @2
以及 dll main 的代码:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD Reason, LPVOID pReserved)
{ switch ( Reason )
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
extern "C" void __stdcall
CreateAIModule()
{
}
extern "C" void __stdcall
DestroyAIModule()
{
}
任何想法为什么函数没有正确链接?
非常感谢您的帮助。
【问题讨论】:
标签: c++ visual-c++ dll g++