COM导入时的麻烦问题。在#import的时候出现一大堆的俄error,望各位COM高手指教

wkoji 2004-01-16 09:44:17
有谁知道在COM导入的时候,加上参数raw_interfaces_only到底是什么意思?
它会带来那些后果?
我在这么使用时很正常#import "c:\program files\common files\system\ado\msado15.dll" rename_namespace("ADOCT") rename("EOF", "adoEOF")

而加上raw_interfaces_only就一大堆的错误。
#import "c:\program files\common files\system\ado\msado15.dll" rename_namespace("ADOCT") rename("EOF", "adoEOF") raw_interfaces_only

我考虑了很久也找不到具体原因,望各位高手指教。
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wkoji 2004-01-17
  • 打赏
  • 举报
回复
我已经修正了大部分的函数调用,现在出现这个错误
d:\program files\microsoft visual studio\vc98\include\comip.h(74) : error C2451: 条件式の型 'const struct ADOCT::_Recordset' が間違っています。この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 d:\cybertrace\src\ctserver\ctado.cpp(1073) : されたのの化 '__thiscall _com_ptr_t<class _com_IIID<struct ADOCT::_Recordset,&struct __s_GUID _GUID_00000556_0000_0010_8000_00aa006d2ea4> >::_com_ptr_t<class _com_IIID<struc
t ADOCT::_Recordset,&struct __s_GUID _GUID_00000556_0000_0010_8000_00aa006d2ea4> >(const struct ADOCT::_Recordset &)' の参照を確認してください
还望各位指点,我实在不清楚怎么这个错误是怎么回事?
wkoji 2004-01-16
  • 打赏
  • 举报
回复
请问 daizh() ,是不是所有的低级方法和属性都是带下划线的?如put_ConnectionTimeout,而所有的非低级属性和方法都是不带下划线的?如PutConnectionTimeout.
或者说,我怎么才能区分哪些是低级属性方法的我可以去调用,哪些不是的我不能去调用?

说来惭愧,我用ADO四年多了,第一次用到这个属性,还是客户提出来的。所以我想把它搞得清楚点。
daizh 2004-01-16
  • 打赏
  • 举报
回复

raw_interfaces_only属性禁止生成错误处理wrapper函数以及使用这些wrapper函数的_ _declspec(属性)说明。

raw_interfaces_only属性也导致删除在命名non__property函数中的缺省前缀。通常该前缀是raw_。若指定此属性,函数名称将直接从类型库中生成。该属性只允许展示类型库的低级内容。
wkoji 2004-01-16
  • 打赏
  • 举报
回复
其实我的问题就是以下的:
我原来的用法是
#import "c:\program files\common files\system\ado\msado15.dll" rename_namespace("ADOCT") rename("EOF", "adoEOF")
应客户的要求改为
#import "c:\program files\common files\system\ado\msado15.dll" rename_namespace("ADOCT") rename("EOF", "adoEOF") raw_interfaces_only
后出了一大堆的错误。我首先是想解决问题,怎么让它不出错,想确定raw_interfaces_only的用法我是否正确了。其次,我想知道为什么要加上raw_interfaces_only参数,它能给我的程序带来什么好处?以及引入这个参数会对ADO的操作产生什么影响?比如说效率上还是稳定性上能有提高?为什么提高的?

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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