2017-11-11 70 views
1

カスタムプロジェクトで再生していて、他のプロジェクトでDLLを作成しようとしていて、実行時にLoadLibrary関数を使用してリンクしましたが、126エラーを返します。グーグルでは多くの場合、ほとんどの場合、人々は他の人のプログラムをデバッグしました。しかし、私のDLLには、関数string sayHello() { return "Hello"; }が含まれています。このDLLを正常に読み込めるようにするには、どのプロジェクトオプションを適用する必要がありますか?関数を呼び出す?おかげC++ - LoadLibraryが自作DLLの126エラーを返します

UDP:

vector<BYTE> decodedDll = base64_decode(base64dll); 
string filename = string("lib.dll"); 
ofstream outfile(filename, ios::out | ios::binary); 
outfile.write((const char*) &decodedDll[0], decodedDll.size()); 
outfile.close(); 
if (!fileExists(filename)) 
{ 
    cout << "DLL file not found " << endl; 
    getchar(); 
    return; 
} 
HINSTANCE hGetProcIDDLL = LoadLibrary((LPCWSTR) filename.c_str()); 
int loadLibraryError = GetLastError(); 
if (hGetProcIDDLL == NULL) 
{ 
    string error = "Could not load DLL\n"; 
    send(s, error.c_str(), error.length(), 0); 
    finishSocketWork(s, address); 
    cout << "Unable to load LIB, error code " << loadLibraryError << endl; 
    getchar(); 
    return; 
} 

(それは大学の仕事だ、私はクライアントからDLLを受信するために必要だ、指定された関数を呼び出し、結果を返します)。そして、.dll転送が良い作品 - ファイルが

+0

を使用するには、あなたが 'LoadLibrary'コールに正しいパスを渡していますか?エラー「126」は、「モジュール」が見つからなかったことを意味する「ERROR_MOD_NOT_FOUND」です。あなたは何をしているのかを示す[最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)を含めるようにあなたの質問を編集していただけますか?そして、[良い質問をする方法について](http://stackoverflow.com/help/how-to-ask)を読んでください。 –

+0

@Someprogrammerdudeが自分のコードを追加しました。申し訳ありませんが、私はいくつかの欠けている依存関係があると思っており、私のコードを提供する必要はありません –

答えて

2
LoadLibrary((LPCWSTR)filename.c_str()); 

等しいこれは(LPCWSTR)キャストを使用してコンパイラエラーを隠そうと、一般的なエラーです。ここでキャストは無意味です。整数から文字列にキャストしようとします。

はANSIパラメータのANSIバージョンLoadLibraryAを使用します。

HINSTANCE hGetProcIDDLL = LoadLibraryA(filename.c_str()); 

またはワイド文字列関数にstd::wstring

+0

ありがとう、それは動作します –

関連する問題