C++路径研究:两招搞定获取可执行文件路径,轻松适配多平台需求

作者:微信公众号:【架构师老卢】
12-21 14:0
52

概述:在C++中获取可执行文件路径的两种常见方法分别利用argv[0]和GetModuleFileName函数。第一种方法适用于多平台,通过argv[0]获取路径信息。第二种方法使用GetModuleFileName函数,适用于Windows平台。这两种方法能满足不同平台的需求,开发者可根据实际情况选择合适的方式获取可执行文件路径

在C++中,获取可执行文件的路径有多种方法,以下是两种常见的方法:

方法一:使用 argv[0] 获取程序路径

#include <iostream>

int main(int argc, char* argv[]) {
    if (argc > 0) {
        // argv[0] 包含可执行文件的路径
        std::cout << "可执行文件路径:" << argv[0] << std::endl;
    } else {
        std::cerr << "获取可执行文件路径失败。" << std::endl;
    }

    return 0;
}

方法二:使用 GetModuleFileName 函数获取模块路径(Windows)

#include <iostream>
#include <windows.h>

int main() {
    char buffer[MAX_PATH];
    DWORD length = GetModuleFileName(nullptr, buffer, MAX_PATH);

    if (length != 0) {
        // buffer 包含可执行文件的路径
        std::cout << "可执行文件路径:" << buffer << std::endl;
    } else {
        std::cerr << "获取可执行文件路径失败。" << std::endl;
    }

    return 0;
}

以上两种方法分别适用于不同的平台,第一种方法通过 argv[0] 获取可执行文件的路径,适用于各种平台。第二种方法使用 GetModuleFileName 函数,适用于 Windows 平台。选择方法取决于你的目标平台和需求。在实际应用中,根据平台选择合适的方法来获取可执行文件的路径。

阅读排行