2010-06-01 56 views
1

我有一個由另一個程序執行的程序。正在執行的程序需要位於其自己位置的文件[同一文件夾]。如果我調用myfile.open(「xpo.dll」),我可能會遇到錯誤,因爲我沒有傳遞[fullpath + name + extension]。根據安裝路徑,正在執行的程序可能會改變路徑。因此,我想知道是否有辦法獲得[應用程序所在的位置]的應用程序路徑,並將其設置爲當另一個程序從另一個路徑執行時,所有東西都可以正常工作......?如何設置正在運行的程序的應用程序路徑?

[使用C++無.NET Framework]

謝謝。

回答

1

使用GetModuleFileName併爲hModule傳遞NULL。

DWORD GetModuleFileName(
    HMODULE hModule, // handle to module 
    LPTSTR lpFilename, // path buffer 
    DWORD nSize  // size of buffer 
); 
0

首先,我碰到這個問題在其他語言很多,而且找到的Process Monitor(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx)爲找出什麼文件夾,它目前正試圖訪問是非常有用的。

這樣做沒有標準功能。

  1. 只是一個想法,你有沒有嘗試過做myfile.open 「./xpo.dll」?

  2. 如果它是一個控制檯應用程序,您可以使用POSIX GETCWD功能:http://www.dreamincode.net/code/snippet77.htm

  3. 如果它是一個Windows應用程序,你可以使用windows API,你可以使用GetModuleFileName ......看到第二回復這個問題在這裏:How do I get the directory that a program is running from?

相關問題