vc编写供vb使用的dll文档
工具:vc6
工程类型: win32 dynamic_link library
要点:
1 导出函数的参数入栈 _stdcall
2 导出函数的定义 写在 .def文件中
3 参数中如果有结构体,需要注意结构体的对应关系vb中是4字节对齐(其实并不是那么简单)
例子:
//vbusedll.def
/
EXPORTS
GetAccoutInfo @1
// vbusedll.cpp : Defines the entry point for the DLL application.
/
#include "stdafx.h"
#include "stdio.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
//帐号信息
struct strtAcc
{
UINT AccountNo; //帐号
UINT CardNo; //卡号
UINT Condition; //状态
LONG Balance; //余额
UINT Identi; //身份
long Depart; //部门
char Name[16]; //姓名
};
extern "C" bool _stdcall GetAccoutInfo(unsigned int intAccout,strtAcc& Accout);
extern "C" bool _stdcall GetAccoutInfo(unsigned int intAccout,strtAcc& Accout)
{
....
}