• 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 > 宿主文件为EXE的COM组件的使用问题

宿主文件为EXE的COM组件的使用问题

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

佚名通过本文主要向大家介绍了宿主,快穿之宿主不听话,妖尾之宿主系统,快穿之宿主快吃药,宿主电影等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 宿主文件为EXE的COM组件的使用问题
描述:

我想监听某个应用程序的事件动作消息,该应用程序提供一些COM接口,所以想
写一个外部的客户程序来完成目的。
下面是我的建的VC Project中部分文件中的代码:
在stdafx.h文件中加入:
#import "*****\Workstation.exe" no_namespace
Com_Test.cpp中如下:
#include "stdafx.h"
#include "windows.h"
#include "tchar.h"
#include "atlbase.h"
#include <iostream>
#using <mscorlib.dll>
//"bd430d64-dddd-11d2-968f-00104bb62cbf"
DEFINE_GUID(CLSID_DataSelector,
0xbd430d64,0xdddd,0x11d2,0x96,0x8f,0x0,0x10,0x4b,
0xb6,0x2c,0xbf);
//"bd430d63-dddd-11d2-968f-00104bb62cbf"
DEFINE_GUID(IID_IDataSelector,
0xbd430d63,0xdddd,0x11d2,0x96,0x8f,0x0,0x10,0x4b,
0xb6,0x2c,0xbf);
using namespace System;
int _tmain()
{
using namespace::std;
    // TODO: Please replace the sample code below with your own.
std::cout<<"Initializing"<<endl;
if ( FAILED(CoInitialize(NULL)) )
{
cout<<"Failed!"<<endl;
return -1;
}        
std::cout<<"Succeed!"<<endl;
IDataSelector* pDS = NULL;
HRESULT hr;
hr = ::CoCreateInstance(CLSID_DataSelector,       NULL,                CLSCTX_INPROC_SERVER,       IID_IDataSelector,
      (void**) &pDS );
if ( FAILED(hr) )
{
std::cout<<"Failed!"<<endl;
}
std::cout<<"Succeed!"<<endl;
return 0;
}
遇到的问题为:
LINK : error LNK2020: unresolved token (0A00001B) CLSID_DataSelector
LINK : error LNK2020: unresolved token (0A00001C) IID_IDataSelector
上面的DEFINE_GUID宏中的uuid值,我是从import的tlh中查到,自己定义的。
因为如果不定义的话,就会出现未定义CLSID_DataSelector,IID_IDataSelector的错误。
希望高手能指点一下!我是新手,还请多多指教。


解决方案1:

#import "*****\Workstation.exe" no_namespace 一般应该是载入类型库文件的,然后需要先编译这个头文件,还有下面应该使用智能指针包装类,也即IDataSelectorPtr来使用接口,并且使用CreateInstance。


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

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

  • 我的ActiveX嵌在一个网页中,如何在ActiveX中点击一个按扭,关闭它的宿主网页?在线等急!急!急!
  • 宿主有什么办法可以判断插件是否Query了某个接口?
  • 如何释放加载到宿主程序中的dll
  • 开发一个中插入word文档的ActiveX有个数据持续化的问题,就是想把ActiveX的某个变量保存下次打开WORD时用这变量存到宿主word文档中
  • dll如何调用,宿主程序的控件?高手急救!!
  • ATL做的DLL文件如何在宿主程序中使用MFC类和函数?
  • 如何得到宿主进程的窗口句柄?
  • 求救:如下程序放在DLL中进行注入正常,侦听也正常,但被注入后宿主不失去反应,不能telnet
  • 请问一个CreateRemoteThread的问题创建远程线程的时候,远程的宿主进程会出现错误高手们帮助一下
  • 注入的DLL如何调用宿主函数?

相关文章

  • 2017-06-05 msscriptocx线程问题
  • 2017-06-05 请教这段使用临界区的代码为什么会Crash呢?
  • 2017-06-05 线程帮助:有一个进度条在线程中变化,但是可以根据其他代码的处理中断线程!
  • 2017-06-04 如何在控件中响应鼠标的down和up消息
  • 2017-06-04 怎样跟踪CoCreateInstance
  • 2017-06-04 关于容器问题
  • 2017-06-04 WriteProcessMemory请问怎样写入字符串
  • 2017-06-04 如何使用wmpdll中CWMPVideoCtrl类
  • 2017-06-04 VC高手请进!!!!!!!!!!
  • 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
  • 微信公众号

最近更新的内容

    • 请问在VC中如何调用本地的ActiveXExe?
    • 用在IE网页中的ActiveX透明控件在网页滚动之后出现的问题
    • 如何确定一个进程的地址空间的有效地址?
    • 一个关于createprocess函数的问题,高手请进!!
    • undefinedclass'ATL_NO_VTABLE'
    • 请问静态链接库怎么使用资源??
    • 请问为什么在服务程序里面安装日志钩子会失败???????????????????????
    • VB调用COM接口,出现类型不匹配,如何解决?
    • 如何截获Win2000,XP登录窗口的用户名和密码?
    • 怎么样在视里动态的插入ActiveXcontrol呀?

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

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