tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 を明示しましょう。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。