龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

如何把VC++代码转换成VB代码?(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
hkrAsLong 同样的,VC++数据类型LPSTR和LPCSTR代表指向字符串的指针,在VB中可以当作String类型.因为当你传送结构给API时,VB将把结构中所有的String转换成指向ANSI字

  hkrAsLong

  同样的,VC++数据类型LPSTR和LPCSTR代表指向字符串的指针,在VB中可以当作String类型.因为当你传送结构给API时,VB将把结构中所有的String转换成指向ANSI字符串的指针.因此后两个成员在VB中表示为:

  pszSubKeyAsString
  pszValueNameAsString

  对于最后一行"}TBSAVEPARAMSA,FAR*LPTBSAVEPARAMSA;"我们只需要用" EndType "取代

  就可以了.转换成VB代码后完整的结构为:

  Public Type tagTBSAVEPARAMSA
  hkrAsLong
  pszSubKeyAsString
  pszValueNameAsString
  End Type
  以下是VC++中数据类型对应到VB中的数据类型

  VC++                VB
  short                Integer
  int                 Long
  long                Long
  UNIT               Long
  ULONG              Long
  WORD                DWORDLong
  WPARAM             LPARAMLong
  WMSG               UMSGLong
  HRESULT              Long
  BOOL                Boolean
  COLORREF             Long
  HWND,HDC,HBRUSH,HKEY,等等   Long
  LPSTR LPCSTR           String
  LPWSTR,OLECHARBSTR       String
  LPTSTR String
  VARIANT_BOOL           Boolean
  unsignedchar              Byte
  BYTE Byte
  VARIANT             Variant
  (任何以*或**结尾的数据类型) Long

  3.函数的转换

  我们知道VB提供了APIVieweradd-in,但是有很多API函数它并没有包括在内. 因此知道如何把VC++函数转换成VB的函数格式是非常重要的.先看第一个例子:

  WINCOMMCTRLAPIHWNDWINAPI
  CreateStatusWindowsA(LONGstyle,
  LPCSTRlpszTest,HWNDhwndParent,UINTwID);

  这个函数创建一个StatusBar控件.从WINCOMMCTRLAPI可以得知该函数来自动态链接库ComCtl32.dll.(有时,我们需要从MSDN中查找某函数对应的DLL)然后我们知道该函数的返回类型是HWND,对应VB的类型是Long.最后,根据前面提到类型对应表,很容易的转换相应的函数参数.

  Public Declare Function CreateStatusWindowA Lib "ComCtl32.dll" (Byvalstyle As Long, ByvallpszText As String, ByvalhwndParent As Long,ByvalwID As Long) As Long

精彩图集

赞助商链接