LPCSTR dllPath = ExePath().append("\\").append(DEF_INJECT_DLL).c_str();
DWORD dwBufSize = (DWORD)(strlen(dllPath) + 1) * sizeof(LPCSTR);
/* test */
char tbuf[1024]= {0,};
sprintf_s(tbuf, "dllPath : %s\r\ndwBufSize : %d", dllPath, dwBufSize);
MessageBoxA(NULL, tbuf, "TEST", MB_OK);
私のdllを挿入するコードの一部。
ExePath()
APIなどを利用してデータ型をAbsolutePath
取得する機能です。std::string
GetModuleFileNameA
DEF_INJECT_DLL
によって定義されます#define "MyDll.dll"
しかし、このコードを実行すると、壊れた文字列が表示されます....
そして、私がMessageBoxA
これに変更すると:
MessageBoxA(NULL,
ExePath().append("\\").append(DEF_INJECT_DLL).c_str(),
"TEST",
MB_OK);
ちゃんと表示されますか?
また、私はこの方法で試しました:
MessageBoxA(NULL,dllPath, "TEST", MB_OK);
しかし、最初のスクリーンショットのように表示されます。
何が問題ですか?