我正在为Linux和Windows编译我的东西。在Linux上,通常,安装前缀是在编译时确定的,因此所有内容都可以在可执行文件中进行硬编码。在Windows上,我使用标准的MSVC安装屏蔽程序,它允许用户更改安装位置。我的问题是程序的Windows端口确定此安装前缀的“正确/正确”方式是什么。我是否找到可执行文件的位置然后减去安装前缀?或者,在安装过程中是否有注册表中的内容告诉我在哪里可以找到我的数据文件/等等?
答案 0 :(得分:2)
虽然您可以使用注册表(假设您的安装设置了适当的密钥,无论是自动还是因为您告诉它),我更喜欢只询问程序本身。使用NULL
参数调用GetModuleFileName()
函数以获取可执行文件的路径。