c++ - 获取当前文件夹中可执行文件的路径 C++

标签 c++ winapi path

我正在尝试获取该程序所在文件夹中 exe 文件的路径。但我不知道该怎么做,我做了类似的事情,但它只获取当前程序路径,而且我不知道如何替换我的程序和我想要获取路径的程序之间的文件名。

那么你能帮我获取该程序所在文件夹中的 exe 路径(我知道该 exe 的名称)...

    char fullp[MAX_PATH];
    char selfp[MAX_PATH] = "..//myprogram.exe"; 
    char otherprogram[MAX_PATH] = "//test.exe";

    DWORD szPath;
    szPath = GetModuleFileName(NULL, selfp, sizeof(selfp));

最佳答案

Win32 API 有一大堆 Path Handling functions可用。

例如,一旦您从 GetModuleFileName() 获取了调用进程的完整路径,您就可以使用 PathRemoveFileSpec()删除文件名,只留下文件夹路径:

char selfdir[MAX_PATH] = {0}; 
GetModuleFileNameA(NULL, selfdir, MAX_PATH);
PathRemoveFileSpecA(selfdir);

然后使用 PathAppend()PathCombine()将不同的文件名附加到该路径:

char otherprogram[MAX_PATH] = {0};
lstrcpyA(otherprogram, selfdir);
PathAppendA(otherprogram, "test.exe");

char otherprogram[MAX_PATH] = {0};
PathCombineA(otherprogram, selfdir, "test.exe");

关于c++ - 获取当前文件夹中可执行文件的路径 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40918561/

相关文章:

c - 为什么第二次调用 RasGetEntryProperties() 返回正在进行的重叠 I/O 操作?

c++ _bstr_t 而不是使用字符串

java - OpenCV 3.0.0 JAR 中缺少 HighGUI

c++ - C WinAPI 和 C++ MFC 资源

c# - win32 api 过时了吗?

powershell - 路径中的 .cmd 与 .ps1

php - 使用来自 SQL 和 PHP 的数据来确定保存文件夹路径

magento - 在 magento admin 中获取前端主题路径

c++ - C++ 中的浮点异常

c++ - 支持 SVN 的 MinGW IDE