Я пытаюсь получить простую смесь между управляемым 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, но, насколько я мог судить, это не дало никаких проблем.