为什么我在导入msxml6时没有获得C4192?

时间:2017-03-06 22:02:01

标签: c++ visual-studio-2015

我们被指示消除所有3级警告,并已被特别告知解决C4192。

我的代码确实属于错误的代码"导致C4192

的例子
#import "msxml6.dll" named_guids

和"好的代码"很容易实现

#import "msxml6.dll" exclude("ISequentialStream","_FILETIME")named_guids

唯一的问题是,我只是没有得到这个警告。我导入的msxml6.dll版本为6.30.7601.18431,无论我做什么,这个警告都没有显示出来。

我还重新导入了它,指定了no_auto_exclude选项,并且在生成的tli和tlh文件中找不到对ISequentialStream或_FILETIME的引用。

我即将更新以使用" good"代码并继续,但我仍然想知道发生了什么。

1 个答案:

答案 0 :(得分:3)

这是一个特别的问题,因为新版本的MSXML6.0更改了声明,特别是从Win10 OS开始。

我们已经遇到了这条警告消息,我们的遗留代码库中包含“错误代码”,您在问题中提到过。

在您的情况下,您的系统使用旧版本的MSXML6.DLL(存在于“C:\ Windows \ System32或SysWow64”中)。

希望这会使您的查询变得清晰。