|
1、在VC++中新建MFC
AppWizard(DLL)工程vcdll:
vcdll.cpp的代码如下:
#include "stdafx.h"
#include "vcdll.h"
long sum1(); //无参类型
extern "C" int APIENTRY sum2(int i); //从VB中接收一个参数
extern "C" long APIENTRY sum3(int i,int j); //从VB中接收两个参数
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
BEGIN_MESSAGE_MAP(CVcdllApp, CWinApp)
END_MESSAGE_MAP()
CVcdllApp::CVcdllApp()
{
}
CVcdllApp theApp;
long sum1()
{ return 100+200; }
extern "C" int APIENTRY sum2(int i)
{ i+=100;
return i;
}
extern "C" long APIENTRY sum3(int i,int j)
{ return i+j;
}
2、在vcdll.def中的代码如下:
LIBRARY "vcdll"
DESCRIPTION 'vcdll Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
sum1
sum2
sum3
3、在编译后,把vcdll.dll拷贝到Windows目录下。
4、VB中新建标准EXE工程vb_vcdll,vb_vcdll.frm的代码如下:
Private Declare Function sum1 Lib "vcdll.dll" () As Long
Private Declare Function sum2 Lib "vcdll.dll" (ByVal i As Integer)
As Integer
'声明VC库中的函数
Private Declare Function sum3 Lib "vcdll.dll" (ByVal i As Integer,
ByVal j As
Integer) As Long
Private Sub Command1_Click()
Text1.Text = sum1() '调用VC函数
End Sub
Private Sub Command2_Click()
Text1.Text = sum2(110)
End Sub
Private Sub Command3_Click()
Text1.Text = sum3(100, 250)
End Sub
|