2011-02-02 79 views
0

我試圖讓該使用zlib壓縮&解壓縮文件的簡單演示程序,但是當我鏈接的文件,Visual Studio 2010的連接器給了我這個錯誤:使用zlib的使用Visual Studio 2010

Error 2 error LNK1313: ijw/native module detected; cannot link with pure modules

當我試圖改變/ clr:純粹只是/ clr。該程序編譯並運行,但給我一個運行時錯誤: 「應用程序無法正確啓動(0xc000007b)。單擊確定關閉應用程序。」

這是迄今爲止只是在氣球提示獲得的zlib版本我的代碼:

String^ info = gcnew String(reinterpret_cast<const char*>(zlibVersion())); 
notify->ShowBalloonTip(20000, "Zlib Version", info, ToolTipIcon::Info); 

你能幫助我弄清楚發生了什麼爲zlib,什麼是錯誤。謝謝

回答

1

如果您的目標是CLR,我強烈建議您使用原生(對於CLR)Zipping/Zlib庫(如DotNetZip),而不是試圖將本機庫用於實現自己想要的目標。

我不是一個C++/CLI專家,所以這可能是完全錯誤的,但我相信

String^ info = gcnew String(reinterpret_cast<const char*>(zlibVersion()));

結果不確定的行爲。原因是System::String構造函數需要一個System::Char對象的數組,而不是C++的char數據類型。 System::Char是兩個字節寬,char是單字節寬(System::String支持Unicode; zlib不)。 (在任何情況下,reinterpret_cast是一個重大的紅旗 - ?爲什麼您使用的是鑄這裏)

而且,錯誤0x7B是

The filename, directory name, or volume label syntax is incorrect.

(該0xC的有可能是因爲它是一個NTSTATUS代碼)確保如果您使用的動態鏈接版本的Zlib DLL可用於您的程序打開某處。

+0

非常感謝 – r1cebank 2011-02-02 05:11:43