2012-09-26 209 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( )(根據您的調用堆棧需要擴展)。