2012-09-26 179 views
0

我尝试将一些资源打包到自定义扩展的档案中,当我遇到初始化PHYSFS时遇到问题时,试图遵循physfs教程(非常含糊)。它需要一个参数argv [0],但它给了我一个argv没有声明的错误。我也尝试将argv作为参数传递给主函数,但这似乎也不起作用。这里的代码是造成我的麻烦小位:初始化PhysFS的问题

#include "physfs.h" 

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

回答

1

从看this tutorial,看起来PHYSFS_init的第一个也是唯一的参数应该是执行文件的路径。它也会说这通常是空的,所以你可以传递null。我同意该教程缺乏,就我阅读该段而言,因为它实际上并未解释该参数用于何种用途。 I 假设为它使用参数来计算根目录的工作来源应该是基于可执行文件的路径。

3

argv的是不是一个全球范围的变量,因此在文件管理器是不可见的()。 argv通常是main()的参数。所以为了让你的FileManager函数看到它,你需要将它定义为main()和FileManager()函数定义中的一个参数,然后当你调用FileManager()(推测来自main)时传递argv。

如果你没有从main调用FileManager(),假设你经历了一些中介函数,只需重复这个过程 - 定义argv作为中间函数的参数,并确保它将argv传递给FileManager( )(根据您的调用堆栈需要扩展)。