タイトル : Re^7: VB6.0で使用したDLLをVB.NETで使用したい 投稿日 : 2007/07/31(Tue) 14:12 投稿者 : まいど
どうもありがとうございます。まいどです。 > > <StructLayout(LayoutKind.Sequential)> _ の付加 > Pack 引数も指定しておいた方が良いでしょう。 > > VB6 でのアライメントは Pack:=4 固定なのですが、.NET の標準は Pack:=8 です。 > また、API によっては、Pack:=1 を要求するものもあります。 > > それと、要素数が固定の配列メンバを含む場合には、それぞれのメンバに > MarshalAs 属性を付加して、固定長構造体配列メンバとして宣言してみてください。 →うまくいかないというか、使えないみたいです。 System.Runtime.InteropServices.MarshalDirectiveException はハンドルされませんでした。 Message="'return value' をマーシャリングできません: 無効なマネージ/アンマネージ型の組み合わせです。Int32/UInt32 は I4、U4、または Error と組で使用してください。" これはInt属性の定義はできないということなのでしょうか? もしくはpackが間違っている?一応、1、4、8、すべて試しました。 結果はNGです。 > > <StructLayout(LayoutKind.Sequential)> _ の付加 ですが、上記を付加したことによって、パラメータが間違いというエラーに変わりました。 結果はまだ解決していないですが、少しずつ紐解きたいと思います。 |