VC++で作成したDLLをVBから呼ぶと戻り値が化けてしまう
はじめまして。いつも勉強させていただいております。
VCは今回初めてやっておりますので当たり前の質問
になってしまうかもしれませんがご教授願います。
以下のような仕様でものづくりを行っております。
1.VBよりVC++で作成したDLLを呼び出す。
2.VC++で作成したDLL側ではパラメータより取得した
値を元に足し算をした結果を
戻り値にセットして要求元に返却する。
といった流れで考えています。
2の部分についてはExeを一度作成し実行させた
ところDOS窓に値が表示されました。(printfで)
しかし、正しくOUTPUTされた値がVB側の戻り値と
して返却された時点で参照すると「-6348」
となっています。
なぜこうなってしまうのか原因がわからず投稿
させて頂きました。
ご存知の方、ご教授下さい。
*************************************************
VC++ DLL側のソース
*************************************************
#include <windows.h>
#define DLL_EXPORT __declspec(dllexport)
extern "C" {
DLL_EXPORT int add(int a,int b);
}
int add(int a,int b)
{
return a+b;
}
*************************************************
VB DLL呼び出し元
*************************************************
Option Explicit
Private Declare Function add Lib "C:\Program Files\Microsoft Visual Studio\test\Debug\test.dll" Alias "_add@8" (a As Long, b As Long) As Integer
Private Sub Command1_Click()
Dim ret As Long
ret = add(1, 2)
MsgBox ret
End Sub
環境
OS:WinXP
言語:VC++6.0
VB6.0(SP6)
お礼
なんだかんだでグループ化した後に、DLL側をコンパイルし それをEXE側で参照設定させるとデバッグできるようになりました。 ありがとうございました。