• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > C++如何编写基于COM的Application?

C++如何编写基于COM的Application?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了用c++编写小游戏,用c++编写贪吃蛇,编写c++程序的软件,用c++编写计算器,vs2015怎么编写c++等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: C++如何编写基于COM的Application?
描述:

我现在想用C++  +  Win32API(不使用ATL或者MFC),我究竟怎么实现:
创建一个COM组件,然后给它分配一个区域呢? 
我想这是COM Client的基本技能吧。


解决方案1:

基本上这个很复杂,OLE的支撑代码特别多。

解决方案2:

http://www.codeguru.com/cpp/i-n/ieprogram/article.php/c4379/

解决方案3:

http://www.codeproject.com/com/com_in_c1.asp
http://www.codeproject.com/com/com_in_c2.asp
http://www.codeproject.com/com/com_in_c3.asp
http://www.codeproject.com/com/com_in__c4.asp

解决方案4:

http://blog.csdn.net/pomelowu/archive/2006/01/17/582363.aspx

解决方案5:

ATL和MFC只是包装了API
所以,理论上LZ的想法完全是可以实现的

解决方案6:

手动添加接口ok

解决方案7:

一个例子, 楼主参考一下,
具体的功能看你自己需要,用适当的 API 实现应该问题不大 ~

解决方案8:

1。建立一个COM对象,如下,简单的调用MessageBox弹出消息框。 
// HelloWorld.cpp : Implementation of CHelloWorld 
#include "stdafx.h" 
#include "CPlusCOM.h" 
#include "HelloWorld.h" 
///////////////////////////////////////////////////////////////////////////// 
// CHelloWorld 
STDMETHODIMP CHelloWorld::SayHelloWorld() 
{ 
 // TODO: Add your implementation code here 
 MessageBox(NULL, "Hello World.", "CPlusCOM.HelloWorld", 1); 
 return S_OK; 
} 
该工程在VC6.0中建立一个简单COM,只添加这个接口方法。 
    2。然后,我们写一个控制台的C++程序来调用这个COM对象(Client.cpp) 
#include <windows.h> 
#include "CPlusCOM.h" 
const IID IID_IHelloWorld = {0x87A437D2,0x1210,0x4CEC,{0x99,0x67,0xB2,0x75,0x23,0x4C,0x3B,0x64}}; 
const CLSID CLSID_HelloWorld = {0xCB85B082,0xB040,0x4865,{0x9A,0xEF,0x61,0xCE,0x0E,0xE1,0xAC,0xB1}}; 
// 这两个常量到MIDL产生的IIDs and CLSIDs声明文件中拷贝出来 
int main(int argc, char* argv[]){ 
 CoInitialize(NULL); // Init COM subsystem 
 IHelloWorld* pHelloWorld; 
 HRESULT hr = CoCreateInstance(CLSID_HelloWorld, NULL, CLSCTX_ALL, IID_IHelloWorld, (void **)&pHelloWorld); 
  
 if (SUCCEEDED(hr)) { 
  pHelloWorld->SayHelloWorld(); // use the object 
 } 
 pHelloWorld->Release(); // free the object 
 CoUninitialize(); 
 return 0; 
} 
编译cl Client.cpp /link ole32.lib 
生成Client.exe,执行Client.exe,将弹出消息窗口。

解决方案9:

下载http://www.infoxa.com/asp/book_file/xxnr_book_633.htm, 书的第二章讲了


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何用C++编写的COM控制WORD的行距?
  • c++编写的ocx控件在vc中无法使用,但在vb中可用
  • 编写基于C++的com控建需要那些支持工具和参考书籍
  • C++如何编写基于COM的Application?

相关文章

  • 2017-06-04 求救啊!关于msrdc20ocx和dbgrid32ocx控件的问题
  • 2017-06-04 mkdir创建文件夹后 用SHFILEOPSTRUCT为什么不能删除此文件夹???
  • 2017-06-04 请大侠帮忙,。。。。。。。。。。。。。急,在线等
  • 2017-06-04 如何在ATL环境下动态地开辟一个字符串型的缓存区
  • 2017-06-05 idl/odl文件里面,类的声明,为什么有的是coclass,有的是dispinterface?
  • 2017-06-05 在VC中调中console程序如何让窗口不自动关闭
  • 2017-06-05 怎样编程实现隐藏系统中的文件夹?
  • 2017-06-05 在多线程中怎样给公用数据加锁?
  • 2017-06-05 MFCActiveX控件大小菜鸟求助
  • 2017-06-05 DLL如何知道自己被谁加载?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 哪有问题,帮我看一下,waitingonline
    • 请问高手,ActiveX控件编译时没错,但注册不了是怎么回事?
    • 为什么都不回答我,5555555555555555555555555555555555555555555555
    • 网页刷新时OCX有时OnCreate未调用
    • 关于Directshow轮换播放不同视频文件内存泄漏问题
    • dll问题:
    • 简单问题!!!在VC++中使用ActiveX控件(如MSFlexGrid),为什么MSDN中没有CMSFlexGrid?怎么办?
    • COM中类厂的困惑!
    • 关于POWERPOINT调用的问题急
    • 从ColeDispatch继承的类怎么使用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有