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フィールドとか、そこ疑問を持ったならやってみろよ! という感じですが眠いのでまた今度…。
[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フィールドとか、そこ疑問を持ったならやってみろよ! という感じですが眠いのでまた今度…。
UnlhaGetMethod More ログイン