运行时的dll路径无法正常工作

时间:2015-04-11 08:49:00

标签: c dll filepath

我写了一个由第三方软件exe动态调用的dll。我需要在运行时从dll内部获取到dll的完整路径。我试过这个帖子:
Get DLL path at runtime
我在我的dll中写了一个引用自己的proc。 但它对我不起作用:返回的路径是exe路径,而不是dll路径。 我做错了什么?
这是proc代码(Windows 7,visual studio 2008):

void stardust_checkCDM(){

    // GET this DLL path
    char dllPathName[256];
    HMODULE hm = NULL;
    char dllLocalFunc[] = "stardust_checkCDM";

    GetModuleHandleExA( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
                        GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
                        (LPCSTR) &dllLocalFunc, &hm );
    GetModuleFileNameA( hm, dllPathName, sizeof(dllPathName) );
    printf( "GetModuleFileNameA: %s\n", dllPathName );

    ...

}

// dllPathName returns caller exe full path name,
// instead of dll full path name.

0 个答案:

没有答案