タイトル : Re: VB.NET で、UnLha32 投稿日 : 2012/05/16(Wed) 13:44 投稿者 : 魔界の仮面弁士
> 途中の、UnlhaFindFirst で、 Alias 句を明示しましょう。この API には ・UnlhaFindFirstW ・UnlhaFindFirstA ・UnlhaFindFirst という 3 種の関数エントリーがあります。 (Ver.2.40 以降の DLL なら、個人的には W 版の利用をお奨めします) > 以下のようなエラーメッセージが出ます。 文字列操作に問題がありそうですね。 INDIVIDUALINFO 構造体の文字列フィールド(szFileName 等)には、 それぞれ、MarshalAs 属性で SizeConst を指定する必要があります。 http://msdn.microsoft.com/ja-jp/library/s9ts558h.aspx > INDIVIDUALINFO構造体の使い方が悪いのか、DllImportが悪いのか、色々試して > みたのですが、上手くいきません。 以下、今回の問題とは直接関係ありませんが、気になった点として: ・HWND や HARC は、Integer ではなく IntPtr で取り扱うべきです。 ・文字列を扱う API では、DllImport あるいは Declare での宣言時に、 Unicode / Ansi 指定を明示しておくことが望ましいです。 ・構造体あるいはクラスの場合も同様に、StructLayout 属性にて CharSet を明示しましょう。 |