DLL自身のフルパスを取得する

すごく簡単なんですが。
とりあえず自分も罠に引っかかったのでメモです。

GetModuleFileName(...)というAPIを使用します。

とりあえず、ソースです。

BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpReserved)
{
char path[MAX_PATH+1];

GetModuleFileName(hInstDLL,path,MAX_PATH);

return TRUE;
}
GetModuleFileNameの第1引数にDLLのインスタンスを渡すと自分自身のパスを得ることが出来ます。
通常?.EXEの場合は、NULLを指定して自分自身のパスを取得しますが、DLLでNULLを指定すると呼び出し側の.EXEのパスを取得してしまいます。
ここが、ポイントです。気づいたら大したこと無いですけどね。