可能重复:
提取当前可执行文件名称
我创建了一个从ini文件读取配置的程序,该文件的名称应该与可执行文件的名称相同,但当然还有其扩展名.因此,如果我将其命名myprogram.exe为config myprogram.ini,那么如果我在编译后更改exe的名称,它应该看起来符合它的新名称.
我知道可以从中获取程序名称,argv[0]但只有当它从命令行开始时才有效,当它在资源管理器中单击时,此数组为空.
当我在这里阅读答案时,我认为它必须对此功能做一些事情:https://stackoverflow.com/a/10572632/393087 - 但我找不到任何使用该功能的好例子,我是非常初学c ++和一般函数定义(就像在微软页面上提到的那样)对我来说太难理解,但是当我得到一个有效的例子时,我很容易理解.
假设源代码文件名是test.cpp.编译时,它会生成test.exe文件.当我执行它时,它应该识别它的文件名test.exe并打印它.
我可以使用以下代码获取当前目录中存在的所有文件和目录的列表:
DIR * directory;
struct dirent * direct;
direct = readdir(directory);
Run Code Online (Sandbox Code Playgroud)
但是,如何识别相关的文件名,在这种情况下是哪个"test.exe"?