|
こんにちは
久しぶりに書いたので忘れきっていました。思い出す良い機会でした。
私も聞かれても殆ど説明できませんから各コマンドの詳しくは
MSDNで調べて下さい。
一応動作確認はしてます。こんなので良いんですかね?
/*C*/
/*defファイル*/
LIBRARY VBDLL
EXPORTS
dllTypetest
/*Test用cppファイル*/
/*VC6でWin32 DDL作成
#include "stdafx.h" //自動的に作られるヘッダーファイル
#define WINAPI __stdcall
struct kouzou{
double a ;
double b ;
double c ;
double d ;
double ans;
}tei;
__declspec( dllexport ) int __stdcall dllTypetest(kouzou *);
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
//int型を返していますが、構造体も返すことができます。
__declspec( dllexport ) int WINAPI dllTypetest(kouzou *pkouzou)
{
pkouzou->ans = pkouzou->a + pkouzou->b + pkouzou->c + pkouzou->d;
return 0;
}
'VB
Private Type kouzou
a As Double
b As Double
c As Double
d As Double
ans As Double '戻り値用
End Type
'Dllのパスは適当に書き換えてください。
Declare Function dllTypetest Lib "D:\programings\VBDLL.dll" (typ As kouzou) As Long
Sub t()
Dim typ As kouzou
Dim ret
With typ
.a = 1
.b = 2
.c = 3
.d = 4
.ans = 0
End With
ret = dllTypetest(typ)
MsgBox typ.ans
End Sub
|
|