我有一个编译成 EXE 的 VC++ win 32 应用程序。但是现在我想将它转换为 dll 以便我可以将其加载到另一个应用程序中。我尝试将 Visual Studio 属性从 .EXE 更改为 .DLL ,它成功地转换了它,但是当我使用 GetProcAddress 时它总是返回 NULL 。我不确定我在做什么是对还是错。
基本上这是我想要实现的:
- 我想链接项目 1 和项目 2
- 项目2应该能够调用项目1的功能(这是一个exe currenlty)
编辑 大家好,感谢您的意见。我告诉了你们所说的。即使这样,我的 GetProcAddress 也会返回零。我做错了什么吗。下面显示了我的 dll 加载代码。
HINSTANCE LoadMe = LoadLibrary( _T("D:\\VC++Project\\CVAList\\CVAList\\ExportTest.dll"));
if (LoadMe != 0)
printf("LoadMe library loaded!\n");
else
printf("LoadMe library failed to load!\n");
EntryPointfuncPtr LibMainEntryPoint;
LibMainEntryPoint = (EntryPointfuncPtr)GetProcAddress(LoadMe,"PrintFloatsVal");
LibMainEntryPoint (a1 ,a,b,c,d ); // 4 double
编辑DLL 导出代码
#define DllExport __declspec( dllexport )
DllExport void PrintFloatsVal ( int amount, double &d1 ,double &d2 , double &d3 ,double &d4)
{
....
..
}