マネージ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でdependsプログラムを実行しましたが、私が知る限り、問題は発生しませんでした。