2011-10-02 134 views
2

最近我TREID到Allegro5庫添加到Visual Studio 2010中,我訪問了allegro.cc和下載的軟件包叫做:快板-5.0.4-MSVC-10.0(名稱之後,我認爲這是正確的)和extracxtion後,我複製:Allegro5和MS Visual Studio 2010中

/bin to C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin 
/include to C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include 
/lib to C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib 

Allegro's dlls to C:\Windows\System32 

I also added "alld.lib" in project -> properties -> linker -> input 

,當我試圖在我的項目用快板,我可以包括Allegro的信息,但是當我試圖鍵入喜歡簡單的東西它是一個錯誤:

#include <allegro5\allegro.h> 

int main() 
{ 
    allegro_init(); 

    return 0; 
} 

它產生一個錯誤(在打字模式下的紅色下劃線):undefinded identifi呃「allegro_init」。 有人會給我一個提示什麼可能是錯誤的這種配置? 我會很高興提供所有提示和解決方案。 問候,

+2

你試過編譯它嗎?它會給出任何錯誤嗎? –

+3

我希望人們會停止將庫複製到VS的目錄中。如果你想把庫放在一個集中的地方,然後創建一個集中的地方,並從Visual Studio引用這些位置。 –

+1

也許[this](http://wiki.allegro.cc/index.php?title=Windows,_Visual_Studio_2010_and_Allegro_5)會有幫助嗎? – quasiverse

回答

2

請參閱wiki上的文檔Allegro 5 and Visual Studio 2010。尤其要注意的是不要修改系統文件夾,就像你已經完成的那樣。

總之,這裏的問題是,你正在嘗試寫快板4碼,但你已經安裝了快板5.這兩個是不兼容的。 Allegro 5完全重寫並設計用於現代硬件。正確的等效程序是:

#include <allegro5/allegro.h> 

int main(int argc, const char *argv[]) 
{ 
    al_init(); 
    return 0; 
} 

此外,您正在通過文件的名稱來判斷是否與Allegro 4鏈接。包含在二進制包中的庫是described here。有許多不同的版本用於調試,靜態運行時間等。alld.lib的最直接等效爲allegro-5.0.4-monolith-md-debug.lib

你可以在這裏找到這本手冊:http://www.allegro.cc/manual/5/

1

嗯,你的最大的問題是,我猜,你實際上並沒有告訴鏈接器如何加載DLL。

你可以做它用LoadLibraryGetProcAddress手動。

然而,大多數的時候你建立一個DLL的時候,你會發現你得到它處理所有上述的動態鏈接你的庫。因此,您會發現將該lib添加到鏈接器「輸入」會更容易。