VC下COM控件使用方法
2013-03-13 14:19
597 查看
1.activeX控件采用组建对象模型(COM),即标题所说COM控件。
2.文中主要介绍两种类型:第一是以.ocx结尾的,第二是以.dll结尾的。
3.注册.ocx的方法之一:
Regserv32 c:\myctl.ocx
或者Regserv32 /s c:\myctl.ocx
4.VC2008下加载.ocx控件
工程资源——Toolbox最下方空白处(右键)——选择choose Items...——弹出Choose ToolBox Items——COM Components中选择已注册的控件
在Toolbox中生成一新图标,拖动图标至实例对话框中如下图
然后创建控件变量,创建后则会生产控件的.h,.cpp文件。
可根据.h中的接口函数使用控件。
5.对于.dll的COM控件注册
1)在开始菜单中点击运行进入命令行,输入dcomcnfg
2)组件服务——计算机——我的电脑——COM+应用程序——COM+ Dead Letter Queue Listener——组件(点击)
3)进入后,菜单——操作——新建——弹出对话框后“安装新组件”——选择路径
4)记下新组件的名字如下图“OphirLMMeasurement.ColMMeasurement.1”
6.在VC2008下使用.dll的COM控件
#import "C:\myctl.dll" no_namespace
使用:
CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(OLESTR("OphirLMMeasurement.CoLMMeasurement.1"),&clsid);
CComPtr<ICoLMMeasurement> pMM;//智能指针
pMM.CoCreateInstance(clsid);
///中间使用接口函数
pMM->Open()
....
///
pMM.Release();
CoUninitialize();
7.相关类型转换
SAFEARRAY -> char*
VARIANT vTemp;
pMM->ScanUSB(&vTemp);
先把SAFEARRAY转换为BSTR类型
BSTR* buf;
SafeArrayAccessData(vTemp.parray, (void **)&buf);
再转为char*
char* lpszText2 = _com_util::ConvertBSTRToString(buf[0]);......
......
SysFreeString(buf[0]); // 用完释放
delete[] lpszText2;
2.文中主要介绍两种类型:第一是以.ocx结尾的,第二是以.dll结尾的。
3.注册.ocx的方法之一:
Regserv32 c:\myctl.ocx
或者Regserv32 /s c:\myctl.ocx
4.VC2008下加载.ocx控件
工程资源——Toolbox最下方空白处(右键)——选择choose Items...——弹出Choose ToolBox Items——COM Components中选择已注册的控件
在Toolbox中生成一新图标,拖动图标至实例对话框中如下图
然后创建控件变量,创建后则会生产控件的.h,.cpp文件。
可根据.h中的接口函数使用控件。
5.对于.dll的COM控件注册
1)在开始菜单中点击运行进入命令行,输入dcomcnfg
2)组件服务——计算机——我的电脑——COM+应用程序——COM+ Dead Letter Queue Listener——组件(点击)
3)进入后,菜单——操作——新建——弹出对话框后“安装新组件”——选择路径
4)记下新组件的名字如下图“OphirLMMeasurement.ColMMeasurement.1”
6.在VC2008下使用.dll的COM控件
#import "C:\myctl.dll" no_namespace
使用:
CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(OLESTR("OphirLMMeasurement.CoLMMeasurement.1"),&clsid);
CComPtr<ICoLMMeasurement> pMM;//智能指针
pMM.CoCreateInstance(clsid);
///中间使用接口函数
pMM->Open()
....
///
pMM.Release();
CoUninitialize();
7.相关类型转换
SAFEARRAY -> char*
VARIANT vTemp;
pMM->ScanUSB(&vTemp);
先把SAFEARRAY转换为BSTR类型
BSTR* buf;
SafeArrayAccessData(vTemp.parray, (void **)&buf);
再转为char*
char* lpszText2 = _com_util::ConvertBSTRToString(buf[0]);......
......
SysFreeString(buf[0]); // 用完释放
delete[] lpszText2;
相关文章推荐
- VC 中一些控件的使用方法(TabControl, 工具栏)
- VC++ 列表控件(CList) 使用方法 (2)
- VC控件ListCtrl的使用方法总汇
- VC CListCtrl控件的使用方法
- VC控件DateTimePicker使用方法
- VC控件ListCtrl的使用方法
- VC LIST控件使用方法
- VC++中List Control控件的使用方法介绍
- VC控件DateTimePicker使用方法及其相关
- VC控件DateTimePicker使用方法(2014-05-18)
- VC/MFC中 CListCtrl控件的使用方法
- 在VC中使用WebBrowser控件的两方法
- 组件的几种方法VC中使用COM
- VC控件ListCtrl的使用方法总汇
- VC++/MFC常用控件 基本使用方法
- vc中edit控件使用总结-控件关联变量方法,语句 ,本质,控件获取,实现滚动换行
- VC 中使用 WebBrowser 控件时自定义 User-Agent 的方法
- VC控件ListCtrl的使用方法总汇
- 使用VC开发ActiveX时,提示程序无法启动 要注册利用“regsvr32”命令控件的注册,注册失败方法
- vc++ 控件Radio Butten的使用方法小结(转载)