27 11月

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.12.00.02公開

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.12.00.02を公開しました。

○Ver.15.12.00.02 – 2015/11/27
・7z.dll対応版でARJ書庫の処理ができない不具合を修正。(Special Thanks!:Roelf Beukens様)
・SevenZipGetArchiveType()とSevenZipGetFileCount()について、ヘッダ暗号化書庫であればパスワード入力ダイアログを表示するように。(Special Thanks!:Roelf Beukens様)

ARJ書庫の処理ができない不具合について。
原因は「ArchiveExtractCallback.cpp」「MyOpenArchive.cpp」のメソッド取得部分にありました。
以下は「ArchiveExtractCallback.cpp」のコード。

RINOK(archive->GetProperty(index, kpidMethod, &prop));
LPCWSTR lpMethod = (prop.vt != VT_EMPTY) ? prop.bstrVal : L"";

オリジナルのように、zipや7zを処理するだけであれば全く問題がありません。
しかし、ARJ書庫くんはメソッドを文字列で返してくれないのです…
で、その後lpMethodを処理しようとして落ちると。

そこで、以下のように文字列に変換するようにしました。

RINOK(archive->GetProperty(index, kpidMethod, &prop));
UString s;
if (prop.vt != VT_EMPTY)
    ConvertPropertyToString(s,prop,kpidMethod);
LPCWSTR lpMethod = (!s.IsEmpty()) ? s.Ptr() : L"";
21 10月

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.09.00.01 beta公開

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.09.00.01 betaを公開しました。

○Ver.15.09.00.01 beta – 2015/10/21
・7-Zip 15.09 betaをベースにビルド。
・SevenZipSetCP(),SevenZipGetCP()を追加し、SevenZipSetUnicodeMode()でのコードページ指定を廃止。
・7z.dll対応版「7-zip32.dll」「7-zip64.dll」について、SevenZipExists7zdll()を追加し、通常版と7z.dll対応版の判別、及び7z.dllの存在を確認出来るように。

SevenZipSetUnicodeMode()で行っていたコードページの指定は廃止し、かわりにSevenZipSetCP()での指定となりました。
また、7z.dll対応版のみSevenZipExists7zdll()を追加しました。

広告