设为首页 加入收藏

TOP

12.5.3 Visual C++单击工程中调用COM组件
2013-10-07 15:13:12 来源: 作者: 【 】 浏览:72
Tags:12.5.3 Visual 单击 工程 调用 COM 组件

12.5.3  Visual C++(www.cppentry.com)单击工程中调用COM组件

用户可以按照以下步骤在Visual C++(www.cppentry.com)单击工程中调用COM组件。

(1)新建一个基于对话框的MFC工程ImageRecognize,选择"Project"→"Settings"命令,在如图12.26所示的对话框中进行设置。

 
图12.26  项目设置
(2)在*Dlg类的头文件中添加如下包含文件:
  1. #include "mwcomutil.h"  
  2. #import "C:\Program Files\MATLAB\R2009a\bin\win32\mwcomutil.dll" raw_ interfaces_only  
  3. #include "TestImageID_1_0.h"  

需要注意的是,在导入mwcomutil.dll时,需要使用当前计算机的MATLAB的安装路径。

(3)将TestImageID_1_0.h和TestImageID_1_0.c复制到创建的MFC工程的目录下。同时要把src\mwcomtypes.h复制到MFC目录下,否则编译会提示出错,这样就可以调用这个COM组件了。

(4)选择"Project"→"Add to project"→"Add files"命令,选择复制过来的TestImageID_1_0.h和TestImageID 1_0.c。

在主对话框类定义文件ImageRecognizeDlg.h中添加一个public类型的所定义COM组件的成员变量,部分程序代码如下:

  1. #include "mwcomutil.h"  
  2. #import "C:\Program Files\MATLAB\R2009a\bin\win32\mwcomutil.dll" raw_ interfaces_only  
  3. #include " TestImageID_1_0.h"  
  4. //////////////////////////////////////////////////////////////////////////  
  5. // CTestFFTComDlg dialog  
  6. class CTestFFTComDlg: public CDialog  
  7. {  
  8. // Construction  
  9. public:  
  10.     CTestFFTComDlg (CWnd* pParent = NULL);  // standard constructor  
  11.      ITestImageID *pImageID;  
  12. …  
  13. }  

(5)在对话框上放上一个按钮,双击按钮添加响应函数,然后输入以下代码:
  1. void CImageRecognizeDlg::OnBtntextid()   
  2. {  
  3.     // TODO: Add your control notification handler code here  
  4.     CoInitialize(NULL);  
  5.     HRESULT hCom=CoCreateInstance(CLSID_TestImageID,NULL,CLSCTX_ALL,IID_ ITestImageID,  
  6.     (void**)& pImageID);  
  7.     if(FAILED(hCom))  
  8.     {  
  9.         AfxMessageBox("create COM instance failed.");  
  10.         return;  
  11.     }  
  12.     pImageID->FuncTextRecog();      //调用COM的接口  
  13. }  

(6)编程(www.cppentry.com)并运行程序。将弹出如图12.27所示界面。单击界面中的"文字图像识别"按钮之后,就会通过COM的接口调用MATLAB图像识别程序,最后得到的原始图像如图12.28所示,图像识别的文字左边轮廓如图12.29所示。
 
图12.27  程序运行后主界面
 
图12.28  给定的原始文字图像
 
图12.29  识别出来的左边轮廓

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇12.5.1 新建图像识别M文件 下一篇认识六个被误解的 Ruby 特性

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: