• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VCで作ったDLL【否 .Net】 配列)

VCで作ったDLL【否 .Net】 配列

このQ&Aのポイント
  • VCでDLLを作り、VBから呼び出しています。関数Calcを__stdcallやdefファイルを使って呼び出せるようにし、VBから呼ぶのですが、うまくいきません。
  • 具体的には、VCで作成したDLLをVBから呼び出そうとしていますが、メモリの書き込みに関する問題が発生しています。
  • VBのコードでは、Declare Sub Calc Lib "SimpleDll.dll"の宣言を行い、Calc関数を呼び出しています。しかし、うまく動作していません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Declare 文がマズイです。(配列の渡し方も) 配列は、配列の構造定義を記録する部分とデータを記録する部分が分かれています。 この書き方だと、配列の構造定義を渡しているだけです。 ではどうするかというと、配列の先頭要素を渡します。 Declare Sub Calc Lib "SimpleDll.dll" (ByVal a As Long, ByVal b As Long, ByRef x As Long) として Call Calc(6, 4, x(0))  ※配列の要素が0からの場合 とします。

Trick--o--
質問者

お礼

回答ありがとうございます。 配列の先頭要素をByRefで渡してやればよかったのですね。 無事動きました。