0

これはより概念的な質問であり、かなり基本的なものかもしれません.dllについて学ぶための良いリソースを実際に見つけていません.

function1 が dll の読み込みを開始し、バックグラウンドでずっと実行する必要がある dll(Load-time dynamic linking) を作成する必要があります。

アプリケーションによって数回呼び出される function2 をエクスポートする必要がありますが、

function1 は function2 で使用する必要があるオブジェクトを提供し、

関数 2 をエクスポートする際に、関数 1 をエントリポイント関数 (dllmain) として使用する予定です。

エクスポートされた関数がアプリケーションによって呼び出されている間にシステムによって呼び出された dllmain 関数として、それらは 2 つのスレッドとして実行されますか、それとも 2 つの別個のプロセスとして実行されますか?

また、必要なことを達成するために、上記で説明したように dllmain と export を使用するのは正しいですか?

4

1 に答える 1

0

Jeffrey Richter による「Advanced Windows」は、DLL について学ぶのに適した 1 つの場所です。

あなたの場合、このようなものが仕事をします。

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
   if (fdwReason == DLL_PROCESS_ATTACH)
   {
       //start thread with function1()
       begin_thread_ex(..., &function1, ....)
   }
}

__declspec(dllexport) function2()
{
    ....
}
于 2012-04-07T21:16:02.017 に答える