パスワードを忘れた? アカウント作成
623854 journal

lineの日記: UnlhaGetMethod

日記 by line
using System.Text;

[DllImport("unlha32")]
private static extern int UnlhaGetMethod(IntPtr harc, StringBuilder lpBuffer, uint nSize);

…OpenArchiveとかFindFirstとかFindNextとか…

StringBuilder lpBuff = new StringBuilder(256);
int method = UnlhaGetMethod(harc, lpBuff, (uint)(lpBuff.Capacity));

…CloseArchiveとか…

なんて書いてるのだけど、UnlhaGetMethodが0を返さない。0が返るとlpBuffに圧縮形式を示す文字列が突っ込まれるはずなんだけど。
他のアーカイバでエラー無く解凍できるので、書庫は正しいLHA書庫のはず。何でだろ。DllImport属性にCharSetフィールドとか付けにゃいかんのでしょうか。バッファの渡し方は@ITの記事とか見て書いたので合ってると思うのですが。

256も確保しておいて返ってくると予想される文字列は"-lh5-"程度の長さというのもアレだ。でもそんなところが関わってるのか?

CharSetフィールドとか、そこ疑問を持ったならやってみろよ! という感じですが眠いのでまた今度…。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...