在Visual Basic 中使用C++ 类
用C++ Builder 创建可重用的OLE Automation
李国兴
我在Borland C++ For Windows 环境下编制工程辅肋设计程序时定义了一个生成AutoCAD DXF 图形交换文件的类,在后来用Visual Basic 编写另一辅肋设计程序时又需要生成DXF图形文件,为了利用已有的代码,我在Borland C++ Builder 3.0 中将普通的C++类转换成Automation Object 进程内服务器,供Visual basic 使用,成功地实现了不同语言源程序级的重用。现将转换方法简单地介绍给大家。供大家参考。
原C++ 类声明如下: (为节约篇幅,进行了大量简化只实现基本功能)
class Dxf{
private:
HFILE handle; //DXF 文件头
String SecStart; //节头
String SecEnd; //节尾
String Tables; //表节串
String Blocks; //块节串
String Entities; //实体节串
protected:
bool WriteTitleSec(); //写标题节
bool WriteBlockSec(); //写块节
bool WriteEntitiesSec(); //写实体节
public:
Dxf();
bool SaveToFile(char *filename); // 保存数据到文件
void Dxf_Line(float x1,float y1,float x2,float y2,int Layer=0); // 画直线
};
将C++类转换成进程内服务器的过程如下:
1. 打开BorLand C++ Builder 3.0 的集成开发环境,选择File菜单下的new 子菜单,C++ Builder 将打开项目选择窗口,选择ActiveX 页面,在Active 页面中选择Active Library。然后再选择File菜单下的new 子菜单,选择ActiveX 页面,在Active 页面中选择Automation object 打开Automation Object Wizard 对话框,在Class name 框中填入DxfCls 作为在VB中引用Dxf 类的类名,单点Ok 完成。C++ Builder 3.0 将建立类型库,完成工程的建立。并打开类型库编辑窗口。(一点说明,由于BorLand C++ Builder在建立Automation Object 时,缺省是建立进程外的自动化服务器,在此我仅需的是作为DLL的进程内的自动化服务器,因此要首先创造一外类型库,再把自动化服务器加到类型库中去。
用C++ Builder 创建可重用的OLE Automation
李国兴
我在Borland C++ For Windows 环境下编制工程辅肋设计程序时定义了一个生成AutoCAD DXF 图形交换文件的类,在后来用Visual Basic 编写另一辅肋设计程序时又需要生成DXF图形文件,为了利用已有的代码,我在Borland C++ Builder 3.0 中将普通的C++类转换成Automation Object 进程内服务器,供Visual basic 使用,成功地实现了不同语言源程序级的重用。现将转换方法简单地介绍给大家。供大家参考。
原C++ 类声明如下: (为节约篇幅,进行了大量简化只实现基本功能)
class Dxf{
private:
HFILE handle; //DXF 文件头
String SecStart; //节头
String SecEnd; //节尾
String Tables; //表节串
String Blocks; //块节串
String Entities; //实体节串
protected:
bool WriteTitleSec(); //写标题节
bool WriteBlockSec(); //写块节
bool WriteEntitiesSec(); //写实体节
public:
Dxf();
bool SaveToFile(char *filename); // 保存数据到文件
void Dxf_Line(float x1,float y1,float x2,float y2,int Layer=0); // 画直线
};
将C++类转换成进程内服务器的过程如下:
1. 打开BorLand C++ Builder 3.0 的集成开发环境,选择File菜单下的new 子菜单,C++ Builder 将打开项目选择窗口,选择ActiveX 页面,在Active 页面中选择Active Library。然后再选择File菜单下的new 子菜单,选择ActiveX 页面,在Active 页面中选择Automation object 打开Automation Object Wizard 对话框,在Class name 框中填入DxfCls 作为在VB中引用Dxf 类的类名,单点Ok 完成。C++ Builder 3.0 将建立类型库,完成工程的建立。并打开类型库编辑窗口。(一点说明,由于BorLand C++ Builder在建立Automation Object 时,缺省是建立进程外的自动化服务器,在此我仅需的是作为DLL的进程内的自动化服务器,因此要首先创造一外类型库,再把自动化服务器加到类型库中去。