0

当我遇到初始化 PHYSFS 的问题时,我尝试将一些资产打包到具有自定义扩展名的存档中,并尝试遵循 physfs 教程(一个非常模糊的教程)。它需要一个参数 argv[0] 但是它给了我一个错误,即 argv 没有被声明。我还尝试将 argv 作为参数传递给 main 函数,但这似乎也不起作用。这是给我带来麻烦的一小段代码:

#include "physfs.h"

int FileManager()
{
  PHYSFS_init(argv[0]) //error
  ...
}
4

2 回答 2

3

argv 不是全局范围的变量,因此它在 FileManager() 中不可见。argv 通常是 main() 的参数。因此,为了让您的 FileManager 函数能够看到它,您需要在 main() 和 FileManager() 函数定义中将其定义为参数,然后在调用 FileManager() 时传递 argv(可能来自 main)。

如果您不从 main 调用 FileManager(),假设您通过了一些中间函数,只需重复该过程 - 将 argv 定义为中间函数的参数并确保它在调用 FileManager() 时传播 argv(扩展此根据您的调用堆栈的需要)。

于 2012-09-26T05:19:47.317 回答
1

通过查看本教程,似乎第一个也是唯一的参数PHYSFS_init应该是执行文件的路径。它还指出这通常为 null,因此您可以传递 null。我同意该教程缺少,就我阅读该段而言,它实际上并没有解释该参数的用途。我假设它使用参数来根据可执行文件的路径计算要工作的根目录应该是什么。

于 2012-09-26T05:24:11.000 回答