c++ - 读取调用程序的命令

标签 c++ windows

如果这个问题已经在其他地方得到了回答,很抱歉,我找不到。

我有一个有趣的问题,我有一个编译程序 prog.exe,它读取一个包含配置的文件 prog.cfg。如果我通过双击打开 prog.exe,一切都很好。但是,如果我从命令行或批处理文件打开它,我首先必须设置目录。例如,如果我的程序位于桌面上的 progs 文件夹中,并从桌面运行 progs\prog.exe,它不会加载配置,因为它是在桌面上寻找配置,即在当前工作目录中。

如果您知道这很好,但这只是让用户跳过的另一个障碍。在 C++ 中有没有一种方法可以回溯到用于启动程序的命令以推断配置文件是否在当前工作目录中?

或者,我问的问题完全错误吗?

非常感谢!

最佳答案

您可以使用 GetModuleFileName(nullptr, buf, bufsize)获取可执行文件的路径。

请注意,标准 main 函数的 argv[0] 不保证提供该路径,并且当它提供路径时,不保证提供可编程使用的路径路径的表示。

关于c++ - 读取调用程序的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724522/

相关文章:

java - C++ 中的设置/获取方法

windows - 通过热键更改最小化第三方应用程序的组合框值

windows - 从多词字符串的每个词的第一个字符创建新字符串

c++ - Windows C++ 字符显示不正确,只显示一些未知字符

c++ - 调用另一个相关对象的 protected 虚函数(用于代理)

c++ - 将 std::vector<T> move 到 T*

c++ - printf 或任何输出函数实际上做了什么?

Windows 相当于 $export

c++ - unicode 窗口中的非 unicode WM_CHAR

c++ - (Windows) 同时打开同一个文件