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

わんくま同盟

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

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


(過去ログ 41 を表示中)
■21283 / )  VBからVC作成DLL(doubleポインタ)の呼び出し
□投稿者/ moro (11回)-(2008/06/30(Mon) 10:39:00)

分類:[VB6 以前] 

いつもお世話になっております。
moroと申します。

VB6からVC6で作成したDLLの呼び出しでエラーが発生し困っています。
VC6でそのDLLを呼び出しした際には正常に動作しました。

VC宣言:
short 関数( double* 配列X, double* 配列Y, int 数値,
      double* 小数点数値1, double* 小数点数値2, double* 小数点数値3);

VC呼び出し:
long 戻り値;
double 配列X[3];
double 配列Y[3];
int 数値;
double 小数点数値1,小数点数値2,小数点数値3;

戻り値 = 関数( 配列X, 配列Y, 数値, &小数点数値1, &小数点数値2, &小数点数値1);

VB宣言:

Public Declare Function 関数 Lib "DLL格納先フルパス"
(ByRef 配列X() As Any, ByRef 配列Y() As Any, ByVal 数値 As Integer,
ByRef 小数点数値1 As double, ByRef 小数点数値2 As double, ByRef 小数点数値3 As double) As Long

VB呼び出し:
 Dim 戻り値 As Long
Dim 数値 As Integer
Dim 配列X(n) As double
Dim 配列Y(n) As double
Dim 小数点数値1 As double
Dim 小数点数値2 As double
Dim 小数点数値3 As double

戻り値 = 関数(配列X(), 配列Y(), 数値, 小数点数値1, 小数点数値2, 小数点数値3)

VBで上記呼び出しで実行した場合、DLLの呼び出しに失敗しましたというエラーメッセージが出力されます。

VBにてVCへ配列を渡すときにはAs Anyで宣言すれば問題ないと考えております。
ですのでdoubleポインタの渡しが正しくないのではないかと考えます。

上記内容についての解決方法をご存知の方がいらっしゃいましたらご教授願います。




返信 編集キー/


管理者用

- Child Tree -