我试图在托管 C++ 和普通 C++ 工作之间得到一个简单的混合。我正在使用 Visual Studio 2005,但一直遇到问题。这是我的设置。
首先,我有一个从代码构建的简单 DLL
#using "mscorlib.dll"
#include "windows.h"
__declspec(dllexport)
void sayHello()
{
OutputDebugStringA( "Hello from managed code!" );
}
我在命令行上将其编译为 DLL,使用
cl /CLR /LD dllcode.cpp
接下来,我有一个简单的程序,仅包含以下内容
#include <windows.h>
int main()
{
HINSTANCE lib = LoadLibrary( "dllcode.dll" );
if ( !lib ) {
return 1;
}
return 0;
}
我使用它构建了一个应用程序
cl loader.cpp
所以我最终在dllcode.dll
同loader.exe
一个目录中。尝试运行时loader.exe
,我总是得到返回码“1”。查找产生的错误代码GetLastError()
显示加载dllcode.dll
失败是由于The specified module could not be found.
有人知道为什么会这样吗?它是否与需要嵌入的清单有关dllcode.dll
?我在 dllcode.dll 上运行了依赖程序,但据我所知,它没有产生任何问题。