vb调用vc dll

功能:比较两数大小。
在VC中新建一个Win32 Dynamic-Link Library工程,DLL类型选“A DLL that exports some symbols”。把.cpp文件内容全部改成
#include "XXX.h"
int  __stdcall Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}
int  __stdcall Min(int a, int b)
{
if(a>=b)return b;
else
return a;
}
(XXX为工程名; __stdcall表示在VB中调用DLL的方式 )
在Source Files文件夹下新建XXX.def文件,内容:
LIBRARY XXX
EXPORTS Max
EXPORTS Min
将XXX.h文件内容全部改为:
extern "C" _declspec(dllexport) int __stdcall Max(int a, int b);
extern "C" _declspec(dllexport) int __stdcall Min(int a, int b);
然后,compile--rebuild all,在生成的Release文件夹下找到XXX.dll和XXX.lib两个文件,将它们拷贝到你建立的VB工程目录下,在VB的Form_load程序里输入:
Option Explicit
Private Declare Function Max Lib ".../.../.../XXX.dll" (ByVal a As Long, ByVal b As Long) As Long
    Private Sub Form_Load()
    Dim c As Long
    c = Max(7, 8)
    Text1.Text = c
    End Sub
其中,".../.../.../XXX.dll"是包括盘符在内的XXX.dll文件的完整路径。
运行这个VB程序,在text1文本框内显示“8”。
 

你可能感兴趣的:(c,function,dll,vb,library)