社区
ATL
帖子详情
Com的一个问题?
viewer
2000-08-08 09:21:00
本人正在学习Com,现有一个问题请教:我作了一个Automation客房程序,使用了
#import "....tlb" ...这种方法来驱动组件,这个有一个IBank的接口,书上
说可以通过IBankPtr这个智能指针来使用这个接口,但编译时老是提示没有
IBankPtr的定义,请问是为什么? 谢谢!
...全文
310
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文件试试看
ping不通github.
com
怎么办?
ping github.
com
不通怎么办? 今天遇到
一个
问题
ping不同github官网 以后大家遇到相同的情况可以尝试一下,不保证每次都能成功,但是是个解决办法 首先想到的应该是dns
问题
, 但是又不知道使用哪个dns能解决
问题
最后从网上找到办法,windows可以自己配置dns,在本机上使用 首先获得github.
com
的IP地址 这个就是IP地址 到C:\Windows\Syste...
什么是跨域
问题
?跨域解决
问题
一.为什么会出现跨域
问题
? 出于浏览器的同源策略限制.同源策略是一种约定,它是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常的功能可能会受到影响,跨域收是Web是构建在同源策略基础上的,浏览器只是针对同源策略的一种实现,同源策略会阻止
一个
域的JavaScript脚本和另
一个
域的内容进行交互,所谓同源(即指同
一个
域)就是两个页面具备同样的协议(protocol),主机(host)和端口号(port) 跨域报错的原因 请求是跨域的,并不一定会报错。普通的图片请求,css文件请求是不
什么是跨域及怎么解决跨域
问题
?
什么是跨域? 这篇博文解释的挺清楚,我直接引用https://blog.csdn.net/lambert310/article/details/51683775 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 所谓同源是指,域名,协议,端口均相同,只要有
一个
不同,就是跨域。不明白没关系,举个栗子: http://www.123.
com
/i...
SpringBoot 中到底如何解决跨域
问题
?
同源策略是浏览器的
一个
重要的安全策略,它用于限制
一个
源的文档或其加载的脚本如何与另外
一个
源进行交互,它能够隔绝恶意文档,减少被攻击的媒介。如果两个URL的协议、主机名和端口号都是相同的,那么这两个URL就是同源的,否则不同源,不同源的访问就会出现跨域
问题
,就会出现上面的错误。下表给出了与URLhttp的源进行对比的示例URL结果原因http同源只有路径不同https非同源协议不同http非同源端口号不同http非同源主机名不同也就是说当在http这个网站中向、和。...
如何自己制作
一个
路由器?
转载自:https://www.zhihu.
com
/question/30121257?sort=created 如何自己制作
一个
路由器? 硬件方面需要哪些?路由器上的一些协议也自己实现,有哪些资料参考? 关注者 167 被浏览 30,194 4 个回答 Andrew Song 华为技术有限公司 硬件工程师 我建议题主先写下要求,比如转发容量是多少?出多少端口,时候需要支持灵活插卡。你描述的越详细,回答会越贴近你的要求。 下班后详细回家你这个
问题
。 ---------
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章