2014-09-23 55 views
0

用winrar的免費unrar.dll的應用:http://www.rarlab.com/rar_add.htm和XE7德爾福unrar.dll報告錯誤包裝尺寸

for Windows軟件開發

UnRAR.dll的UnRAR動態庫

當我列出一個RAR內容(它裏面的文件列表)的文件名是正確的,但是報告的大小總是0.他們自己的Delphi演示也是這樣做的,我懷疑它是很久以前用Delphi的老版本製作的。

在調用RARReadHeaderEx(hArcData,HeaderData)之後,HeaderData UnpSize/UnpSizeHigh(UINT)應包含文件大小,但在調用後兩個值始終爲0。

怎麼了?

你可以在上面的鏈接德爾福的演示,但它需要一個小的修改,它的工作:

OpenArchiveData.ArcName := ArcName; 

這一定是

OpenArchiveData.ArcName := NIL; 
OpenArchiveData.ArcNameW := PChar(ArcName); 
+0

你爲什麼把NIL設置爲字符串類型?我沒有測試過它,因爲我不在我的開發機器上,但這可能是原因。 – SilverWarior 2014-09-23 06:52:11

+0

不是一個直接的答案給你的問題只是一個解決方法:否則你可以考慮使用7Zip – 2014-09-23 08:47:22

回答

2

沒有,DLL本身沒有如果你從this link下載Delphi組件包裝,安裝它並嘗試打開演示,一旦你打開一個RAR文件,你將得到正確的文件大小:

Example

所以,我可以說Delphi component wrapper for UnRar.dll by Philippe Wechsler是完全正常工作,並與Delphi XE7兼容(只需安裝D2009包)。

+0

謝謝,由於他的代碼發現問題,ArcName和Filename必須是AnsiChar而不是Char,它修復了它。 – hikari 2014-09-23 11:29:56