• 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 > 客户端怎样调用COM组件????????????????

客户端怎样调用COM组件????????????????

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

佚名通过本文主要向大家介绍了客户端安全组件,lol客户端安全组件,ia300客户端安全组件,lol客户端组件加载中,客户端安全组件下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 客户端怎样调用COM组件????????????????
描述:

写了一个很简单的COM组件(只有一个接口ITest),
怎样将用一个exe程序来测试这个接口?
要加入那些文件,最好详细一点。。。因为,我太菜了。。
(我在EXE程序中:ITest * test; 说没有定义。我该怎样操作呢?)


解决方案1:

用c#添加引用,然后像调用普通类一样调用组件

解决方案2:

#Include "f:\alttest\atltest_i.c" in..

解决方案3:

也可以使用如下方法:
在客户端程序中加入如下语句:
Import "×××.tlb" named_guids
×××.tlb屎ATL编译屎生成的一个文件。
这样可以使用智能指针:接口名+Ptr
如你的接口屎ITest,则用ITestPtr定义智能指针即可

解决方案4:

谢谢 benchmark(老老实实编码) 
学到不少东西。

解决方案5:

楼上的果然讲的仔细啊........

解决方案6:

保存并关闭Simple_ATL工程,然后创建一个新的Win32 控制台应用程序。选择“Win32 Console Application”并取名为“Test_ATL”。单击OK按钮并接受对话框中的缺省设置(空的工程)。单击“Finish”按钮,然后再按OK按钮。这样就创建好了一个空的工程。按下“Control+N”键向工程中添加一个文件。从弹出的窗口中选择“C++ Source File”并为它取名为“Test_ATL.cpp”。按下OK按钮。这样工程中就有了一个空的.CPP文件。我们要在这个文件中添加一些测试COM服务器的代码:
// 将头文件的目录指到Simple_ATL工程所在的目录
#include "..\Simple_ATL\Simple_ATL.h"
#include 
// 从Simple_ATL 工程所在目录的Simple_ATL_i.c 文件中拷贝以下内容
// 注意: 你也可以不拷贝这些东西,而是把文件Simple_ATL_i.c包含进来。
// 我之所以将它拷进来,是想更清楚地展示这些敞亮来自什么地方一击它们的代码
const IID IID_IFirst_ATL = 
{0xC8F6E230,0x2672,0x11D3,{0xA8,0xA8,0x00,0x10,0x5A,0xA9,0x43,0xDF}};
const CLSID CLSID_First_ATL = 
{0x970599E0,0x2673,0x11D3,{0xA8,0xA8,0x00,0x10,0x5A,0xA9,0x43,0xDF}};
void main(void)
{
// 声明HRESULT和Simple_ATL接口指针
HRESULT hr;
IFirst_ATL *IFirstATL = NULL;
// 初始化COM
hr = CoInitialize(0);
// 使用SUCCEEDED 宏并检查我们是否能得到一个接口指针 
if(SUCCEEDED(hr))
{
hr = CoCreateInstance( CLSID_First_ATL, NULL, CLSCTX_INPROC_SERVER,
IID_IFirst_ATL, (void**) &IFirstATL);
// 如果成功,则调用AddNumbers方法,否则显示相应的出错信息
if(SUCCEEDED(hr))
{
long ReturnValue;
IFirstATL->AddNumbers(5, 7, &ReturnValue);
cout << "The answer for 5 + 7 is: " << ReturnValue << endl;
IFirstATL->Release(); 
}
else
{
cout << "CoCreateInstance Failed." << endl;
}
}
// 释放COM
CoUninitialize();
}
编译并运行测试程序
   按下“F5”功能键,编译测试程序,然后按“Control+F5”功能组合键运行测试程序。在DOS窗口中,你应该能看到输出的结果。

解决方案7:

#include <stdafx.h>

解决方案8:

当然得加入你的接口定义头文件了


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

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

  • 求调用ATLCOM组件的客户端代码,VC60,时间紧迫,
  • 聚合的内部组件不能直接在客户端创建吗,必须通过外部组件?
  • 如何将COM组件应用到客户端执行?
  • 如何使客户调用com组件时可以不用输入某些接口参数
  • 如何在浏览器中启动客户端组件?
  • 为什么在客户程序中使用com组件不能编译连接?
  • 组件和客户间传递IXMLDOMNodePtr的问题,请大家多帮忙。
  • 如何让一个服务端组件通知所有客户端?
  • 郁闷:VCNet做的COM+组件,部署到客户端有问题,请指点!
  • 如何在客户端悄悄的升级COM组件?

相关文章

  • 2017-06-04 接口类可以直接声明为变量吗?
  • 2017-06-05 很奇怪的问题请大家帮忙检查下代码
  • 2017-06-05 webbrowser如何能在sleep一段时间后自动关闭submit后的页面?
  • 2017-06-05 请问怎么获得某个进程所创建的互斥量啊
  • 2017-06-04 关于DirectShow的问题,DirectX编程高手请帮忙
  • 2017-06-04 Win32项目,高手请教教小弟,不胜感激。
  • 2017-06-05 请问如何用钩子hook实现对任意程序打开一文件的拦截?
  • 2017-06-05 问windows服务程序运行机制
  • 2017-06-05 请教dll注入问题
  • 2017-06-05 如何控制线程的运行时间?

文章分类

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

最近更新的内容

    • 用过程CoInitializeSecurity()不能返回正确得不到访问权限,请问该如解决!多谢,很急啊!
    • 关于进程等待,弟兄们进来瞧瞧
    • 如何获得Exchange2007中的语音邮件??
    • 求VC制作ISO镜像文件方法
    • 参数传递问题,本人在线等解
    • 100分求救:Atl组件中键盘消息的响应问题
    • 为什么用VCNET2003编写的atlActiveX的dll不能自动注册???
    • 关于内存泄漏!
    • 再次开贴读取webservice的的问题
    • 急,网页控件OCX加载dll

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

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