raw_interfaces_only用法?

时间:2012-08-09 09:48:07

标签: windows visual-studio visual-c++ com

有人可以解释一下raw_interfaces_only实际上做了什么吗?

例如,

#import <xyz.dll> raw_interfaces_only 

我无法理解单行说明provided in the msdn site

2 个答案:

答案 0 :(得分:4)

MSDN says

  

禁止生成使用这些包装函数的错误处理包装函数和属性(C ++)声明。

  

raw_interfaces_only属性也会导致使用默认前缀   在命名要删除的非属性函数。通常,   前缀是raw_。如果指定了此属性,则函数名称为   直接来自类型库。

     

此属性允许您仅公开的低级内容   类型库。

您还可以使用和不使用此属性进行构建,并比较生成的.tlh文件以查看差异:

#import <imapi2.dll> // --> imapi2-without.tlh
#import <imapi2.dll> raw_interfaces_only // --> imapi2-with.tlh

enter image description here

raw_interfaces_only属性会导致生成较少的包装代码。

答案 1 :(得分:0)

好吧,看看谷歌的第一个结果,lazy link,它似乎是一个&#39;属性&#39;

形成该页面:

#import  "filename" [attributes]
#import  <filename> [attributes]

然后我们可以自己阅读raw_interfaces_only属性的作用:

  

raw_interfaces_only属性禁止生成使用这些包装函数的错误处理包装函数和__declspec(属性)声明。

对我来说这听起来就像一个简单的例子,它有助于减少导入库的麻烦,减少包装代码和为您完成的错误检查。