C Windows上的数据目录

C Windows上的数据目录,c,installation,C,Installation,编写游戏时,您总是添加一些数据(图像、声音等)。在类Unix系统上,我通常将它们安装到${PREFIX}/share/项目/数据中,其中${PREFIX}可能由生成系统(如CMake或autotools)控制 在这种情况下,直接使用构建系统自动生成的一些#define设置数据目录很容易 在Windows上,我完全不知道如何找到数据目录,因为应用程序安装程序总是询问项目的安装位置,而且代码已经编译好,因此无法通过一些#define来控制 对于这个问题,我有两个想法: 使用启动二进制文件的.bat脚

编写游戏时,您总是添加一些数据(图像、声音等)。在类Unix系统上,我通常将它们安装到${PREFIX}/share/项目/数据中,其中${PREFIX}可能由生成系统(如CMake或autotools)控制

在这种情况下,直接使用构建系统自动生成的一些#define设置数据目录很容易

在Windows上,我完全不知道如何找到数据目录,因为应用程序安装程序总是询问项目的安装位置,而且代码已经编译好,因此无法通过一些#define来控制

对于这个问题,我有两个想法:

  • 使用启动二进制文件的.bat脚本并向数据目录添加一个开关。然后用户将只启动这个.bat文件

  • 由应用程序安装程序生成包含数据目录路径的新文件,并将其安装在公共应用程序数据文件夹中的某个位置


  • 您建议我怎么做?

    如果您专门针对win32,那么您应该使用。 它允许您在可执行文件本身中包含任意文件,并自动生成引用这些文件的宏,您可以使用win32 API加载它们。允许您在生成中存储任意blob


    缺点是它根本不是可移植的,为了使它正常工作,你需要有一个中等的微软FU。

    使用注册表,大多数安装程序应该让你创建密钥。你有没有考虑安装一个安装程序?通过使用安装程序,您可以让用户选择复制软件文件的路径。您可以将用户选择的此路径存储在windows注册表中,以备将来使用。