`
film
  • 浏览: 224084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

vb调用vc写的dll文件的时候,变量类型的对应关系

 
阅读更多

引子:昨天在用vb调用vc写的dll文件的时候,变量的使用上出现了问题,通过反编译调试,发现vb中的long才是对应c中的int。而不是integer对应int。

以下是找到的资料:

在本篇中我们重点讲讲Api函数声明中参数列表的部分.

我们知道每种编程语言的数据类型都不尽相同,比如说C中的int和VB中的integer,看名字它们都是整型,但是它们占有的内存单元却是完全不同的.VB中的Integer是占用2个字节的.所以如果某个Api函数原型是C的int型你用Integer去声明它的话,会产生一些意外的错误.正确的做法是用Long去声明它.下面我们例出一些常用的类型转换:

C语言类型 VB类型 Bytes
const char* Long 4
__int16 Integer 2
__int32 Long 4
__int64 Double 8
__int8 Byte 1
bool Long 4
float Single 4
double Double 8
short Integer 2
int Long 4
char Byte 1
unsigned int Long 4
char Byte 1
unsigned char Byte 1
unsigned char Byte 1
unsigned short Integer 2
unsigned int Long 4
VARIANT_BOOL Integer 2
wchar_t Integer 2
FARPROC Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
LONG Long 4
DWORD Long 4
WORD Integer 2
WORD Integer 2
WORD Integer 2
WCHAR/BYTE integer/byte 2/1
DWORD Long 4
unsigned long int Long 4
int Long 4
unsigned char Byte 1
unsigned char Byte 1
OLECHAR* Long 4
unsigned char Byte 1
unsigned char Byte 1
DWORD Long 4
FARPROC Long 4
FARPROC Long 4
DWORD Long 4
char Byte 1
char Byte 1
WORD Integer 2
long Long 4
void* Long 4
CMC_sint32 Long 4
CMC_uint32 Long 4
CMC_uint32 Long 4
CMC_uint32 Long 4
short Integer 2
long int Long 4
char Byte 1
char* Long 4
CMC_uint32 Long 4
unsigned short int Integer 2
unsigned long int Long 4
FARPROC Long 4
FARPROC Long 4
DWORD Long 4
DWORD Long 4
CY Long 4
int Long 4
DWORD Long 4
LONG Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
float Single 4
double Double 8
FARPROC Long 4
FARPROC Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
DWORD Long 4
WORD Integer 2
DWORD Long 4
DWORD Long 4
DWORD Long 4
CHAR Byte 1
DESKTOPENUMPROCA Long 4
FARPROC Long 4
FARPROC Long 4
unsigned int Long 4
PVOID Long 4
LONG Long 4
FARPROC Long 4
double Double 8
double Double 8
DWORD Long 4
FARPROC Long 4
DWORD Long 4
unsigned long Long 4
unsigned __int64 Double 8
EDITWORDBREAKPROCA Long 4
FARPROC Long 4
FARPROC Long 4
FARPROC Long 4
FARPROC Long 4
FARPROC Long 4
unsigned long Long 4
INT Long 4
* Long 4
BYTE Byte 1
int Long 4
WORD Integer 2
unsigned long Long 4
float Single 4
float Single 4
DWORD Long 4
FONTENUMPROCA Long 4
FARPROC Long 4
FARPROC Long 4
ULONG Long 4
__int64 Double 8
WORD Integer 2
void* Long 4
long Long 4
long Long 4
HANDLE Long 4
FARPROC Long 4
FARPROC Long 4
unsigned int Long 4
HANDLE Long 4
ULONG Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
PVOID Long 4
HANDLE Long 4
HANDLE Long 4
ULONG Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
LPVOID Long 4
void* Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HICON Long 4
void* Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
PVOID Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
DWORD Long 4
void* Long 4
HANDLE Long 4
void* Long 4
int Long 4
HANDLE Long 4
ULONG Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
struct _IMAGELIST NEAR* Long 4
DWORD Long 4
DWORD Long 4
HANDLE Long 4
PVOID Long 4
HANDLE Long 4
LPVOID Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
void* Long 4
void* Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
void* Long 4
HGLOBAL Long 4
FARPROC Long 4
HANDLE Long 4
HANDLE Long 4
DWORD Long 4
HANDLE Long 4
HANDLE Long 4
DWORD Long 4
LONG Long 4
HANDLE Long 4
ULONG Long 4
HANDLE Long 4
HANDLE Long 4
WORD Integer 2
PVOID Long 4
PVOID Long 4
void* Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
struct _TREEITEM FAR* Long 4
ULONG Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
HANDLE Long 4
__int64 Double 8
void* Long 4
void* Long 4
unsigned short Integer 2
int Long 4
int Long 4
WORD Integer 2
ULONG Long 4
LONG Long 4
int Long 4
WORD Integer 2
WORD Integer 2
LONGLONG Double 8
DWORD Long 4
LONG Long 4
LONG Long 4
DWORD Long 4
unsigned long Long 4
FARPROC Long 4
FARPROC Long 4
FARPROC Long 4
HANDLE Long 4
long Long 4
long Long 4
long double Double 8
long Long 4
__int64 Double 8
hyper Double 8
long Long 4
IAuthenticate* Long 4
IBindCtx* Long 4
union tagBINDPTR* Long 4
BOOL* Long 4
LPRECT Long 4
unsigned char* Long 4
LPCRECT Long 4
const CHAR* Long 4
const DLGTEMPLATE* Long 4
const DLGTEMPLATE* Long 4
const FOLDERSETTINGS* Long 4
CHAR* Long 4
const IID* Long 4
const ITEMIDLIST* Long 4
CLSID* Long 4
MENUITEMINFOA const* Long 4
MENUITEMINFOW const* Long 4
const MMCKINFO* Long 4
const MMIOINFO* Long 4
const OLECHAR* Long 4
DWORD* Long 4
const PROPSHEETHEADERA* Long 4
const PROPSHEETHEADERW* Long 4
const PROPSHEETPAGEA* Long 4
const PROPSHEETPAGEW* Long 4
REBARBANDINFOA const* Long 4
REBARBANDINFOW const* Long 4
const RECT* Long 4
const RECTL* Long 4
PRTL_CRITICAL_SECTION Long 4
SCROLLINFO const* Long 4
const SHITEMID* Long 4
const CHAR* Long 4
const TBBUTTON* Long 4
const TCHAR* Long 4
const void* Long 4
const WAVEFORMATEX* Long 4
const WCHAR* Long 4
const WCHAR* Long 4
DWORD* Long 4
DWORD* Long 4
DWORD* Long 4
D3DCOLORMODEL* Long 4
DWORD* Long 4
DWORD* Long 4
DWORD* Long 4
float* Long 4
DESC_CHAR* Long 4
DLGITEMTEMPLATE* Long 4
DLGITEMTEMPLATE* Long 4
DLGTEMPLATE* Long 4
DLGTEMPLATE* Long 4
DWORD* Long 4
DWORD* Long 4
SBinaryArray* Long 4
IEnumCATEGORYINFO* Long 4
PFIBER_START_ROUTINE Long 4
FMTID* Long 4
ACCELERATEABSDI* Long 4
DISMISSMODELESS* Long 4
long* Long 4
long* Long 4
GUID* Long 4
HANDLE* Long 4
IID* Long 4
int* Long 4
WORD* Long 4
unsigned long* Long 4
long* Long 4
VOID** Long 4
PVOID Long 4
PVOID Long 4
DWORD* Long 4
NMSELCHANGE* Long 4
OLECHAR* Long 4
WORD* Long 4
const char** Long 4
LPMAPIFORMINFO* Long 4
SIZE* Long 4
CHAR* Long 4
IStream* Long 4
LPSTR Long 4
PTHREAD_START_ROUTINE Long 4
LPSTR Long 4
unsigned long* Long 4
VARIANT* Long 4
LPBYTE Long 4
void* Long 4
WCHAR* Long 4
WORD* Long 4
WCHAR* Long 4
LONG Long 4
unsigned long Long 4
DWORD Long 4
long Long 4
unsigned long Long 4
char Byte 1
unsigned long Long 4
LARGE_INTEGER Double 8
int Long 4
DISPID Long 4
double Double 8
DWORD Long 4
FARPROC Long 4
FARPROC Long 4
void* Long 4
CHAR* Long 4
LONG Long 4
WCHAR* Long 4
long Long 4
FARPROC Long 4
VARIANT_BOOL Integer 2
DWORD Long 4
VARIANT_BOOL Integer 2
UINT Long 4
VARIANT_BOOL Integer 2
float Single 4
LONG Long 4
long Long 4
float Single 4
LONG Long 4
long Long 4
float Single 4
LONG Long 4
long Long 4
float Single 4
LONG Long 4
long Long 4
WCHAR Integer 2
ACL* Long 4
WORD Integer 2
IAVIEditStream* Long 4
IAVIFile* Long 4
IAVIStream* Long 4
IAVIStreaming* Long 4
WORD* Long 4
BOOL* Long 4
BOOLEAN* Long 4
BYTE* Long 4
const CHAR* Long 4
COMBOBOXEXITEMA const* Long 4
COMBOBOXEXITEMW const* Long 4
CHAR* Long 4
CHAR* Long 4
const IUniformResourceLocatorA* Long 4
IConnectionPoint* Long 4
IConnectionPointContainer* Long 4
PRTL_CRITICAL_SECTION Long 4
const CHAR* Long 4
char* Long 4
const URLINVOKECOMMANDINFOA* Long 4
const URLINVOKECOMMANDINFOW* Long 4
const WCHAR* Long 4
const WCHAR* Long 4
LONG Long 4
DLGITEMTEMPLATE* Long 4
DLGITEMTEMPLATE* Long 4
DWORD* Long 4
DWORDLONG* Long 4
IEnumConnectionPoints* Long 4
IEnumConnections* Long 4
FLOAT* Long 4
const unsigned char* Long 4
IGetFrame* Long 4
HANDLE* Long 4
HKEY* Long 4
int* Long 4
IUniformResourceLocatorA* Long 4
LARGE_INTEGER* Long 4
PDWORD Long 4
long* Long 4
LONGLONG* Long 4
LUID* Long 4
const MIDL_STUB_DESC* Long 4
void* Long 4
LONG* Long 4
WORD Integer 2
PROPENUMPROCA Long 4
FARPROC Long 4
PROPENUMPROCEXA Long 4
FARPROC Long 4
FARPROC Long 4
FARPROC Long 4
ULONG Long 4
SCODE* Long 4
WORD* Long 4
DWORD* Long 4
SHORT* Long 4
PVOID Long 4
SIZE* Long 4
CHAR* Long 4
char* Long 4
unsigned char* Long 4
LPSTR Long 4
char* Long 4
void* Long 4
int Long 4
LPSTR Long 4
UCHAR* Long 4
unsigned int* Long 4
ULONG* Long 4
ULONGLONG* Long 4
USHORT* Long 4
void* Long 4
WCHAR* Long 4
WCHAR* Long 4
WORD* Long 4
WSH_NBP_NAME* Long 4
WSH_NBP_NAME* Long 4
WSH_NBP_NAME* Long 4
WCHAR* Long 4
CLSID* Long 4
FMTID* Long 4
GUID* Long 4
IID* Long 4
ACCESS_MASK Long 4
DWORD Long 4
short Integer 2
void* Long 4
void* Long 4
I_RPC_HANDLE Long 4
unsigned char* Long 4
I_RPC_HANDLE* Long 4
void* Long 4
unsigned long Long 4
void* Long 4
void* Long 4
long Long 4
unsigned long Long 4
HANDLE Long 4
LPVOID Long 4
char Byte 1
long Long 4
DWORD Long 4
double Double 8
long int Long 4
WORD Integer 2
DWORD Long 4
FARPROC Long 4
DWORD Long 4
float Single 4
short Integer 2
short Integer 2
short Integer 2
int Long 4
signed char Byte 1
int Long 4
long Long 4
short Integer 2
unsigned int Long 4
signed long Long 4
long Long 4
OLECHAR** Long 4
u_int Long 4
HANDLE* Long 4
__int64 Double 8
unsigned char Byte 1
unsigned char Byte 1
unsigned char Byte 1
double Double 8
double Double 8
void* Long 4
SQLHANDLE Long 4
SQLHANDLE Long 4
SQLHANDLE Long 4
SQLHANDLE Long 4
HWND Long 4
long Long 4
unsigned char Byte 1
void* Long 4
float Single 4
SQLSMALLINT Integer 2
char Byte 1
short Integer 2
SQLCHAR Byte 1
unsigned char Byte 1
unsigned char Byte 1
unsigned __int64 Double 8
unsigned long Long 4
unsigned short Integer 2
unsigned char Byte 1
wchar_t Integer 2
short Integer 2
long Long 4
long Long 4
DWORD Long 4
short int Integer 2
short int Integer 2
TCHAR Byte/Integer 1/2
TCHAR Byte/Integer 1/2
long Long 4
FARPROC Long 4
FARPROC Long 4
FARPROC Long 4
WORD Integer 2
unsigned char Byte 1
unsigned int Long 4
unsigned long Long 4
unsigned short Integer 2
unsigned char Byte 1
unsigned long int Long 4
unsigned long int Long 4
unsigned int Long 4
unsigned long Long 4
unsigned long Long 4
unsigned __int64 Double 8
unsigned char Byte 1
unsigned int Long 4
unsigned long Long 4
unsigned short Integer 2
BYTE_BLOB* Long 4
DWORD_BLOB* Long 4
FLAGGED_BYTE_BLOB* Long 4
FLAGGED_WORD_BLOB* Long 4
WORD_BLOB* Long 4
unsigned short Integer 2
unsigned short Integer 2
LONGLONG Double 8
unsigned short int Integer 2
unsigned short int Integer 2
char* Long 4
VARIANT Variant  
short Integer 2
VARIANT Variant  
unsigned short Integer 2
void* Long 4
wchar_t Integer 2
unsigned short Integer 2
wchar_t Integer 2
wchar_t Integer 2
LPVOID Long 4
FARPROC Long 4
FARPROC Long 4
wchar_t Integer 2
userSTGMEDIUM* Long 4
FLAGGED_WORD_BLOB* Long 4
userCLIPFORMAT* Long 4
userFLAG_STGMEDIUM* Long 4
RemotableHandle* Long 4
userHBITMAP* Long 4
RemotableHandle* Long 4
RemotableHandle* Long 4
userHENHMETAFILE* Long 4
RemotableHandle* Long 4
userHGLOBAL* Long 4
RemotableHandle* Long 4
RemotableHandle* Long 4
userHMETAFILE* Long 4
userHMETAFILEPICT* Long 4
userHPALETTE* Long 4
RemotableHandle* Long 4
RemSNB* Long 4
userSTGMEDIUM* Long 4
FARPROC Long 4
* Long 4
unsigned short Integer 2
UINT Long 4
DWORD Long 4

对于指针型的类型转入到Vb中应是ByRef的.其它的用ByVal,对于某些函数回调,需要用Addressof取函数地址,要注意的是要取地址的函数必需在模块文件中.否则会出错.

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/littlerain007/archive/2005/03/22/326569.aspx

分享到:
评论

相关推荐

    一个可用供VB、VC调用的摄像头视频捕捉DLL

    可用来在VB,VC中驱动摄像头,进行静帧捕捉的DLL动态链接库(必须要有摄像头生成StillCap0000.bmp):将MyDll文件解压后把MyDll.dll与MyDll.lib一起拷入工程DEBUG目录中(为保险起见DEBUG的外层目录也拷贝一份吧),...

    VB编程常用的模块及CTL控件集打包.rar

    另外在VB写的程序里 ‘要使用LoadLibraryA,notepad不是用vc写的吗?要注意根notepad没关系,我们现在是在自己的VB程序里面找LoadLibraryA函数的入口. ‘还有要注意函数大小写,api函数和vb不一样的。 MyResult = ...

    VC 钩子 hook屏蔽键盘按键.rar

    VC hook基于钩子的原理屏蔽键盘任意按键,为了使用方便,生成一个标准的DLL,利用底层键盘钩子实现屏蔽键盘任意按键,作者: 卢培培 (goodname008),包括了...源码实例中并包括了VB6.0中调用此DLL进行键盘屏蔽的示例。

    Vb.net中国象棋源码最新版(VbCch2011)

    GenerateMoves函数用C语言写,做成Dll文件,用Vb调用。速度加快了。原来的象棋巫师好像没有“王照面可吃”的规则,我新增加了这段程序。 {{{{三、坐标格式}}}}} 坐标格式不再使用两个变量From,Target,而只使用...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_3

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_5

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    标准MFC WinSock ActiveX控件开发实例

    另外还提供了WinSock的详细开发步骤,以及如何响应网络超时,网络断开的事件方法以及在VC,VB调用该控件的方法。 一、MFC ActiveX控件开发步骤(VC 6.0): New->Projects->MFC ActiveX ControlWizard,然后输入...

    NiceBASIC测试版3

    NiceBASIC测试版3是新型编程工具跟 VC,VB,DELPHI类似。 NiceBASIC测试版3 上传日期:2008年12月13日11:02:21 NiceBASIC中文编程语言,是采用类似BASIC语法,并兼有C++的一些高级特性(比如:指针操作运算、自动化...

    Java开发技术大全(500个源代码).

    HelloNative.dll 用C生成的DLL文件 HelloNative.exp 用VC编译生成的辅助文件 HelloNative.h 用javah生成的C语言用的头文件 HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    易语言程序免安装版下载

     静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...

    asp.net知识库

    忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,...

    网络听诊管理监控系统.part01

    8 VC和VB接口定义……………………………………………………………………………..34 8.1 NETMANAGE.DLL 接口定义…………………………………………………………………….34 8.2 NETMANAGE.DLL中数据结

    WPS二次开发FAQ&帮助文档

    1.2 WPS Office2012 的接口类对象和对应的DLL 文件.............................................................4 1.3 原有的与WPS Office 2003(WPS2003)、WPS Office 2002(WPS2002)、WPS Office2005 (WPS...

Global site tag (gtag.js) - Google Analytics