请教一下:用VC做的dll被加载时怎样取得程序的运行路径?

解决方案 »

  1.   

    在程序开始运行时得到它的位置,如1.exe调用2.dll,1.exe在c:\dir1下,而2.dll在c:\dir1\dir2下,想在2.dll的DllMain里获取进程的位置c:\dir1。
    我试了GetCurrentDirectory,在调试的时侯发现每次得到的路径不一致,请高手指定一下。
    在想是否能象在控制台编程那样用__argc参数实现呢?:)
      

  2.   

    DWORD GetModuleFileName(
      HMODULE hModule,    // handle to module
      LPTSTR lpFilename,  // file name of module
      DWORD nSize         // size of buffer
    );把hModule设置成NULL
      

  3.   

    GetModuleFileName
    如果要得到exe句柄,
    TCHAR sz[200];
    GetModuleFileName(NULL,sz,200)当然, 你可以知道其他文件的句柄, 就可以得到他的路径