C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 127 を表示中)
■75392 / )  Re[9]: VB.netからVC++6.0のへの構造体配列参照渡し
□投稿者/ とら (12回)-(2015/03/19(Thu) 19:01:17)
No75377 (魔界の仮面弁士 さん) に返信

一括表示で2ページ目になっていたため気付くのが遅れました、すみません!

こちらでも同じようにやってみたのですが、タイプライブラリの生成に失敗しましたといったエラーが発生してしまいました。


>  LPSAFEARRAY psa = *Type1;

今回成功したパターンは、VC++で受け取った後にLPSAFEARRAY型に代入しているという事は

    TEST_API int __stdcall Test1(LPSAFEARRAY *Type1)

という元々の状態ではなく

    TEST_API int __stdcall Test1(T_Struct *type1)

の状態で受け取っているという事でしょうか?



> C++ は苦手というか勉強したことが無い(C が少し読める程度)ので、
> これで正しいのかどうかは全然自信が無いけど、一応コンパイルは通ったようだ。
わざわざあれこれ挑戦して頂いたようで大変恐縮です、有難う御座います。



>(1) AssemblyInfo.vb にて、
>   <Assembly: ComVisible(True)>
>   <Assembly: Guid("……")>
>  を指定しておきます。プロジェクトのプロパティの[アプリケーション]-[アセンブリ情報]でも指定可。

>  <ComVisible(True), Guid("8D60602D-452A-48A1-ACEF-AF148A6E41B8")> _

GUIDの部分が少々理解が追い付きませんでしたが、ここに設定する値は

>Guid.NewGuid().ToString("D")等で生成した値を指定

とありましたが、この値はこの関数を実行するたびに変化するのでしょうか


また、

>(2) 構造体側にも、また別の GUID を割り当てておきます。

とありましたが、AssemblyInfo.vbに設定するGUIDと構造体に設定するGUIDは違うものにしておくのですか?



そちらでは結果が出ている事が確認できているところすみませんが、何卒よろしくお願い致します。

返信 編集キー/


管理者用

- Child Tree -