私はGoogleや他の情報源から検索していたので、トピックの説明/タイトルがそれを示しているので、これは可能ですか?質問をするためにここに来ました...VC++ 2008のリソースとしてDLLを埋め込み/ロードしますか?
可能なすべてDLL
を最終的な実行ファイルにリソースとして埋め込み、それを現在のディレクトリおよび/またはシステムディレクトリの外部ファイルであるかのように呼び出しますか?
私は運がなければ多くのことを試しましたが、その解決策の多くはうまくいきませんでした。私はDLL
を.rc
ファイルに埋め込んでしまったようですが、ディスク上の物理ファイルに保存する必要があるかもしれませんが、わかりません。
[EDIT]以下
は現在、私はまだ任意の成功なしに、実装したコードです。私はまだ、以下The program can't start because soandso.dll is missing from your computer.
コードに直面しています -
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE("#101"), "IDR_DLLRESOURCE_101");
HGLOBAL hData = LoadResource(hInstance, hRes);
LPVOID lpFile = LockResource(hData);
DWORD dwSize = SizeofResource(hInstance, hRes);
HANDLE hFile = CreateFile("soandso.dll", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
HANDLE hFilemap = CreateFileMapping(hFile, 0, PAGE_READWRITE, 0, dwSize, 0);
LPVOID lpBaseAddr = MapViewOfFile(hFilemap, FILE_MAP_WRITE, 0, 0, 0);
CopyMemory(lpBaseAddr, lpFile, dwSize);
UnmapViewOfFile(lpBaseAddr);
CloseHandle(hFilemap);
CloseHandle(hFile);
return 0;
}
/は任意のため、事前にありがとうとすべてが提供できます。
「Reflective DLL Injection」のGoogleでは、質問に対する回答が見つかります。 –