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