我的问题是,我希望.obj文件(来自blender)可以在我的(opengl)程序中使用,而不会在我的硬盘上显示这些文件。所以,我想象有可能将这些.obj文件链接到我的程序文件中并从中读取。如何做到这一点还是不可能?我还能做什么?
备注:.obj文件包含3d网格,用户不应编辑这些网格,我不想将这些.obj文件硬编码为.cpp文件。在osx mavericks + eclipse上工作。
答案 0 :(得分:0)
在Windows上,您可以将文件嵌入资源中,然后从软件中加载它们。
答案 1 :(得分:0)
我的问题是,我希望.obj文件(来自blender)可以在我的(opengl)程序中使用,而不会在我的硬盘上显示这些文件。
这通常不是一个好主意。想象一下你是否已经发布了一个新版本的程序,你有一个Internet更新程序。如果将数据与程序分开,则只需传输一个小的可执行二进制文件。如果将所有数据嵌入到可执行文件中,则每次更新都会强制您分发大型包。
当然,如果这是您的程序强烈依赖的某些数据以及可能在不同版本之间发生变化的数据,则嵌入它是有意义的;例如,连接到微控制器存储器接口的FPGA的配置图像,其中微控制器程序使用存储器映射的I / O到FPGA中,因此FPGA图像必须与程序匹配。
所以,我想象有可能将这些.obj文件链接到我的程序文件中并从中读取。
是的,这肯定是可能的。通常的方法是使用bin2c之类的工具将文件转换为C数组,并将生成的文件与程序一起编译。但请记住,C编译器可能对数组初始值设定项的大小有上限。
我还能做什么?
不要太不合理。如果用户可以更改.obj
文件,这样做,事情就会中断并且用户向您抱怨,您可以告诉他,在他做出更改后,他们自己负责。用户不是你的敌人。