1

所以我正在寻找一段代码,它允许我搜索它正在执行的文件的路径。例如,我正在做一个用于 pendrives 的自动运行程序(示例),但我不知道是否它将以 D:、F:、G: 或其他形式结束,因此程序将搜索它自己的路径并使用一些“if”语句根据他找到的路径打开另一个文件。

这是我的想法:

    #include <stdlib.h>
    #include <iostream>
    using namespace std;

    int main () {
    // Insert 'search path' code and needed variables here.

    if (-ThePath- == "d:\\AutoRun.exe")
        {
         system ("d:\\MyFolder\\OtherProgram.exe");
        }
    else if (-ThePath- == "f:\\AutoRun.exe")
        {
         system ("f:\\MyFolder\\OtherProgram.exe");
        }
    else if (-ThePath- == "g:\\AutoRun.exe")
        {
         system ("g:\\MyFolder\\OtherProgram.exe");
        }
    else
        {
         cout << "An error ocurred.\n";
         cout << "Press enter to exit...\n";
         cin.get();
        };
    return 0;
    }

有什么办法可以做到吗?

4

2 回答 2

8

GetModuleFileName这里的文档

已编辑 - Pedro,来自 Microsoft 的示例代码处理了很多事情。要获取文件路径,您只需要:

TCHAR szPath[MAX_PATH];

if( !GetModuleFileName( NULL, szPath, MAX_PATH ) ) {

    // handle error in GetModuleFileName

} else {

    // now, szPath contains file path

};
于 2013-10-28T15:50:41.887 回答
2

在标准 C++ 中,argv[0] 包含可执行文件的名称。对于以正常方式调用的程序,这将是 Windows 上可执行文件的路径。

于 2013-10-28T15:54:38.413 回答