社区
ATL
帖子详情
Com的一个问题?
viewer
2000-08-08 09:21:00
本人正在学习Com,现有一个问题请教:我作了一个Automation客房程序,使用了
#import "....tlb" ...这种方法来驱动组件,这个有一个IBank的接口,书上
说可以通过IBankPtr这个智能指针来使用这个接口,但编译时老是提示没有
IBankPtr的定义,请问是为什么? 谢谢!
...全文
314
3
打赏
收藏
Com的一个问题?
本人正在学习Com,现有一个问题请教:我作了一个Automation客房程序,使用了 #import "....tlb" ...这种方法来驱动组件,这个有一个IBank的接口,书上 说可以通过IBankPtr这个智能指针来使用这个接口,但编译时老是提示没有 IBankPtr的定义,请问是为什么? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blackjack
2000-09-07
打赏
举报
回复
idl中有一句library 名字空间,
名字空间::IBankPtr ptr(__uuidof(名字空间::类工厂名))
//OK
举个例子吧,Com对象的.IDL如下:
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(0B463456-8499-11D4-95B2-5254ABDD134B),
dual,
helpstring("Inc Interface"),
pointer_default(unique)
]
interface Inc : IDispatch
{
[id(1), helpstring("method DoShow")] HRESULT DoShow([in]BSTR bstrMessage);
[propget, id(2), helpstring("property IntValue")] HRESULT IntValue([out, retval] long *pVal);
[propput, id(2), helpstring("property IntValue")] HRESULT IntValue([in] long newVal);
};
[
uuid(0B463441-8499-11D4-95B2-5254ABDD134B),
version(1.0),
helpstring("cp 1.0 Type Library")
]
library CPLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(0B463457-8499-11D4-95B2-5254ABDD134B),
helpstring("nc Class")
]
coclass nc
{
[default] interface Inc;
};
};
以上.IDL仅功参考,com调用时不一定要,对象调用如下:
#include <windows.h>
#include <comdef.h>
#import "D:\vc++\cp\Debug\cp.dll"//对象的DLL的路径
int main(){
CoInitialize(NULL);
try {
CPLib::IncPtr/*接口指针*/ pInc(__uuidof(CPLib::nc/*类工厂名*/));
_bstr_t bstrMessage=L"Hello";
pInc->put_IntValue(007L);
pInc->DoShow(bstrMessage);
}
catch(const _com_error &e){
MessageBox(0,
(LPCTSTR)e.ErrorMessage(),
(LPCTSTR)"Com error",
MB_OK);
}
CoUninitialize();
return 0;
}
zcheny
2000-08-26
打赏
举报
回复
正确格式应该为
#import "...tlb" no_namespace
因为#import会自动建立一个以CLSID命名的一个名字空间,你需要用no_namespace使该空间的所有标示符能被全局访问。
xubin_sh
2000-08-10
打赏
举报
回复
用了名字空间了吗?
如果还不对的话不要import tlb文件,import dll文件试试看
随机开仓,止盈1~2个点,止损1~20个点能实现盈利正期望吗?
随机开仓,止盈1~2个点,止损1~20个点能实现... 看过这个课程,您将会知道: a) 这类
问题
的究极解决方案,直达
问题
核心,不再纠结原因 b)构建一段时间可用的交易策略 c)知道“没有不变的策略”的原因
Docker虚拟化容器
Linux容器技术的出现就解决了这样
一个
问题
,而Docker就是在它的基础上发展过来的。将应用运行的Docker容器上面,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到...
核心Java程序设计技术
寻找
一个
编程中具体
问题
的答案,英文搜索结果要远好于中文。对于程序设计人员,英文还有更特别的意义,毕竟程序是英文写的。英文差,完全会导致程序质量大幅下降。最后,我着重需要强调的是,英文能够培养
一个
人科学...
Reworld基础教程(一)认识Reworld
Reworld是一款门槛极低的免费游戏创作工具,使用Reworld的天然自带的物理引擎,每个人都可以创作自己的梦想世界,Reworld编辑器创作的游戏能够在安卓、iOS平台完美运行。本门课程将带领大家认识Reworld,熟悉界面,...
Reworld基础教程(四)角色与装备
Reworld是一款门槛极低的免费游戏创作工具,使用Reworld的天然自带的物理引擎,每个人都可以创作自己的梦想世界,Reworld编辑器创作的游戏能够在安卓、iOS平台完美运行。本门课程将带领大家认识Reworld,熟悉界面,...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章