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

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

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
对于大多数VB的爱好者来说,在很多情况下都想通过使用API函数来实现一些比较高级的功能或达到某种特殊效果,这就需要用到一些VC++的代码. 本文就如何把VC++代码转换成VB代码给出了一些

  对于大多数VB的爱好者来说,在很多情况下都想通过使用API函数来实现一些比较高级的功能或达到某种特殊效果,这就需要用到一些VC++的代码.

  本文就如何把VC++代码转换成VB代码给出了一些策略和方法.

  1.定义常量

  我们首先看第一个例子:

  #define STD_COPY1//COMMCTRL.H

  在VC++代码中用#define定义常量,而在VB中是用Const来定义,因此转换成VB的代码是:

  Public ConstSTD_COPY=1

  第二个例子:

  #define LB_SELECTSTRING0x018C//WINUSER.h

  这有一个问题,VC++中所有以"0x"开头的值是十六进制,而在VB中表示十六进制要用"&H"开头.因此转换成VB的代码为:

  Const LB_SELECTSTRING=0x018C

  第三个例子:

  #define TCN_FIRST(0U-550U)

  这里有个特别的是定义的值是以"U"结尾,这是意味着该常量的类型是"unsigned long"(在VB中不支持该数据类型).但是unsignedlong和signedlong(在VB中是Long)两种数据类型的值在存储方式上是一样的,只是表现的形式不同.因此,我们只需要去掉末尾的"U"就可以了.

  Const TCN_FIRST=(0-550)这同样适合以"L"结尾的值

  另外,对于#define CDDS_ITEMPOSTERASE(CDDS_ITEM |CDDS_POSTERASE),我们需要用"Or"来取代"|"

  2.结构的定义

  我们先看VC++定义的一个比较简单的结构:

  type defstruct tagTBSAVEPARAMSA{
  HKEYhkr;
  LPCSTRpszSubKey;
  LPCSTRpszValueName;
  }TBSAVEPARAMSA,FAR*LPTBSAVEPARAMSA;

  首先我们需要把第一行的"type defstruct"转换成"Public Type"

  Public Type tagTBSAVEPARAMSA
  然后处理结构成员:

  HKEYhkr;
  LPCSTRpszSubKey;
 LPCSTRpszValueName;

  对于第一个成员类型HKEY.我们要知道VC++中的以"H"开头的大部分数据类型代表的是某种句柄.在VB中每一个Form对象和许多控件都有一个hWnd属性,它代表所属窗口的句柄.hWnd的类型是Long,并且所有用来存储句柄的变量类型都是Long.因此,该成员在VB中定义为:

精彩图集

赞助商链接