重複の可能性:
Rundll32 を使用して DLL 関数を実行する方法は?
rundll32.exe で実行できる独自の dll を作成するためのドキュメント (チュートリアル、書籍など) はどこにありますか?
重複の可能性:
Rundll32 を使用して DLL 関数を実行する方法は?
rundll32.exe で実行できる独自の dll を作成するためのドキュメント (チュートリアル、書籍など) はどこにありますか?
これは、で動作する、私が思いつくことができる最も基本的なHelloWorldサンプルrundll.exe
です。次の手順に従ってください。
VisualStudioで新しいWIN32DLLプロジェクトを開始します(私はVS2010を使用しました)
dlllmain.cppに次を追加します。
// this shoud ideally go into the .h file I believe
__declspec( dllexport ) void CALLBACK EntryPoint(
HWND hwnd,
HINSTANCE hinst,
LPSTR lpszCmdLine,
int nCmdShow);
// our hello world function
void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow)
{
int msgboxID = MessageBox(
NULL,
L"Hello World from Run32dll",
L"Hello World",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
}
プロジェクトにファイルを追加し、module.def
その中の次のスニペットを編集します。
LIBRARY YourDll
EXPORTS
EntryPoint
コンパイルしてから、コマンドラインからテストします。
rundll32 YourDll.dll,EntryPoint
3つのボタンが付いたMessageBoxで迎えられるはずです
次のURLを使用して、C ++の問題と、作業の初期段階で見つからなかったEntryPointを克服しました。