【发布时间】:2009-04-16 17:54:19
【问题描述】:
我正在尝试在托管 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()产生的错误代码显示由于The specified module could not be found.而导致加载dllcode.dll失败
有人知道为什么会这样吗?它是否与需要嵌入到 dllcode.dll 左右的清单有关?我在 dllcode.dll 上运行了依赖程序,但据我所知,它没有产生任何问题。
【问题讨论】:
标签: c++ dll loadlibrary