抄一段给你。
如果那个DLL不能用VB调,你就写个DLL。专用来帮你调那个DLL好了。在VB工程中使用VC++编写的DLL
李志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__;
#endifBEGIN_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 LongPrivate Sub Command1_Click()
Text1.Text = sum1() '调用VC函数
End SubPrivate Sub Command2_Click()
Text1.Text = sum2(110)
End SubPrivate Sub Command3_Click()
Text1.Text = sum3(100, 250)
End Sub
如果那个DLL不能用VB调,你就写个DLL。专用来帮你调那个DLL好了。在VB工程中使用VC++编写的DLL
李志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__;
#endifBEGIN_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 LongPrivate Sub Command1_Click()
Text1.Text = sum1() '调用VC函数
End SubPrivate Sub Command2_Click()
Text1.Text = sum2(110)
End SubPrivate Sub Command3_Click()
Text1.Text = sum3(100, 250)
End Sub
例如:
HRESULT WINAPI SampleFunction(int Flag,....)
{
......
}
或者,你直接在VB中用LoadLibrary试一试,原理和 hujun614(Softworm) 一样。
__stdcall void TestData()
{
MessageBox(GetActiveWindow(),"测试Data","测试",MB_OK);
}
现在是不能改了
vb就没有办法调用吗?