请教一个关于接口的问题(控件与类)

cmpp 2002-02-24 11:43:15
我有一个OCX(。DLL的文件),添加到窗体后,要用到里面定义的一个类(对象什么的,我也不知道怎么说),我给这个控件定义了一个变量是mAbc,那个类是ISDriver,那么我怎么用呢?
我是这样做的:
ISDriver* mISDrv=NULL;//通过
mISDrv=*(ISDriver*)&mAbc;//通过
mISDrv->SetPrice(1.50);//出现错误,Unhandle..........


...全文
45 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
source2002 2002-02-26
  • 打赏
  • 举报
回复
原代码革命狂飕-一个程序员的吐血之作
集本人多年开发积累和精心收藏所铸就而成的软件及系统原代码光盘,价格便宜,只需100元(RMB)(限量发行100套,先购先得),有意者请速发邮件至:source2002@sina.com
本人承诺尽快回复汇款地址及系统的详细介绍。
光盘内容:
[MP3播放程序源代码]
[ERP系统源代码系列]:包含的模块有系统管理、基本资料管理、生产管理、采购管理、仓库管理、质量管理、设备管理、人力资源管理等模块。
[GIS地理信息管理系统源代码]
[IDE开发平台界面(类似delphi)源代码]
[报表设计系统源代码]
[伯乐股市分析系统源代码(C++)][通用的SQL查询语言生成器]
[超级程序管理器源代码]
[超级电子小说阅读器源代码]
[豪杰超级解霸2.0程序源代码(C++)]
[机关单位通用工资管理系统(VB)源代码]
[家庭财账管理软件源代码]
[进销存管理(VB)源代码]
[进销存系统源代码本系统]
[挖地雷游戏的源程序(VB)]
[网络RPG游戏系统源代码(Java/asp)]
[网页在线编辑系统源代码(Java/asp)]
[文件传输系统1源程序]
[文件传输系统2源程序]
[邮件处理系统源程序]
[语音识别系统源程序]
[远程监控系统源程序]
[文档资料管理系统源程序]
[动态网站系统原码]:网上商店前后台管理软件、网站分类源程序、广告服务器源程序、网上超市源程序、投票(调查)源程序、投稿软件源程序、二手市场源程序、流量统计源程序、图片上传源程序、新闻服务器源程序、论坛源程序、BBS源程序、隐蔽留言簿源程序、公开留言板源程序、聊天室源程序、社区源程序
[媒体播放器源代码]
[扑克牌游戏源代码]
[棋类游戏系统源代码]
[软件注册系统源代码]
[跳舞机的源程序(VB)]
[图片浏览器系统(C++)源代码]
GJA106 2002-02-24
  • 打赏
  • 举报
回复
CComQIPtr<ISDriver> mAbc;不会程序中少个I吧!

Bardo 2002-02-24
  • 打赏
  • 举报
回复
你也可以用CreateObject方法!
cmpp 2002-02-24
  • 打赏
  • 举报
回复
没有通过,好象
CComQIPtr<SDriver,还有什么> mAbc;


GJA106 2002-02-24
  • 打赏
  • 举报
回复
msdn上也有CComQIPtr这个类的说明
GJA106 2002-02-24
  • 打赏
  • 举报
回复
编译通过了吗!
cmpp 2002-02-24
  • 打赏
  • 举报
回复
楼上的大哥,现在我很急呀,求求你了
GJA106 2002-02-24
  • 打赏
  • 举报
回复
找一本关于COM或ATL方面的书来看
GJA106 2002-02-24
  • 打赏
  • 举报
回复
找一本基础的COM或ATL来看
cmpp 2002-02-24
  • 打赏
  • 举报
回复
mISDrv和mAbc怎么关联呢
GJA106 2002-02-24
  • 打赏
  • 举报
回复
在stdafx.h中添加
#include <atlbase.h>
实在不行再加
#import "XXXX.ocx" no_implementation raw_interfaces_only raw_native_types
using namespace ISDriverNSpace;
cmpp 2002-02-24
  • 打赏
  • 举报
回复
提示CComQIPtr没有定义
GJA106 2002-02-24
  • 打赏
  • 举报
回复
CComQIPtr<SDriver> mAbc;
cmpp 2002-02-24
  • 打赏
  • 举报
回复
楼上的老大正确!!!
idoloveyou 2002-02-24
  • 打赏
  • 举报
回复
你那个.dll应该先注册(用RegSvr32 dll文件名)
然后:(先#include <objbase.h>)
CLSID clsid = //你的控件的ID(你应该事先知道的,如果不知道,就在注册表中查找你那个dll文件名,然后就能找到CLSID)
IID iid = //接口的ID,也可以在注册表中查
ISDriver pISD = NULL;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_SERVER, iid, (void**) &pISD);
这时用SUCCEEDED(hr)判断是否成功,如果成功,就可以对pISD进行操作了
cmpp 2002-02-24
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/539/539627.xml
cmpp 2002-02-24
  • 打赏
  • 举报
回复
在VB中是这样的:
dim mISDrv as ISDriver
set mISDrv=mAbc.Object
mISDrv.SetPrice=1.50
在VC中怎么做呢
cmpp 2002-02-24
  • 打赏
  • 举报
回复
大家都给一点代码吗
qhd0233 2002-02-24
  • 打赏
  • 举报
回复
想简单点,不把它定义成指针,先用
ISDriver mAbc;
然后用DDX函数把控件和mAbc关联起来,这样,
mAbc->SetPrice(1.50);
就应该可以了。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧