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()を呼び出すときに(おそらくmainから)argvを渡す必要があります。

mainからFileManager()を呼び出さない場合、たとえば中間関数を実行する場合は、プロセスを繰り返します-中間関数のパラメーターとしてargvを定義し、FileManager()の呼び出しでargvを伝播することを確認します(これを拡張します)コールスタックごとに必要に応じて)。

于 2012-09-26T05:19:47.317 に答える
1

このチュートリアルを見ると、最初で唯一のパラメータPHYSFS_initは実行中のファイルへのパスであると思われます。また、これは通常nullであるため、nullを渡すことができることにも注意してください。その段落を読んだ限り、パラメータが何に使用されるかを実際に説明していないという点で、チュートリアルが不足していることに同意します。実行可能ファイルのパスに基づいて、パラメータを使用して、作業するルートディレクトリを計算すると思います。

于 2012-09-26T05:24:11.000 に答える