XP工程移植Win7上找不到msxml.dll的错误

作者: admin 分类: 开发问题 发布时间: 2014-07-04 18:18 ė2,355 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

解析XML文件使用到了微软的msxml ,在xp下使用的时候,只要#import <msxml.dll>编译就可以顺利通过,

当把工程移植到Vista上的时候就会遇到找不到 msxml.dll的错误。

原来在Vista上msxml.dll升级为msxml6.dll,

只要把#import <msxml.dll>改成#import <msxml6.dll>

相应using namespace MSXML改成using namespace MSXML2编译即可通过

那么Vista下编译后的可执行文件是不是不可以在XP下使用呢?

网上的有种方法是:
#if (_WIN32_WINNT >= 0×0600)
#import <msxml6.dll>
#else
#import <msxml.dll>
#endif

这种做法是没有必要的

下面是一位网友给出的解释:

COM组件的使用方式,开发环境和运行环境是不同的。开发环境要使用最新的SDK才能支持最新的操作系统,所以要用#import msxml6.dll,但是到了运行环境,程序并不会直接加载msxml6.dll,而是通过CoCreateInstance来加载的,传递的是PROGID或者CLSID,系统会在注册表中找到对应的dll文件,如果运行在vista下,系统会帮你加载msxml6.dll,如果在xp环境下,系统帮你加载msxml.dll。但是程序不能使用IXmlDocument6,因为在XP环境下,msxml.dll并不支持这个版本。

这个特征是COM最基本的特征:保持二进制兼容,即使组件版本升级,也能在新环境下运行旧版的程序,因为新版组件一定会保留旧版组件的接口。

解决办法,下载msxml.dll 复制到 windows/system32 下即可,无需注册



只回答业务咨询点击这里给我发消息 点击这里给我发消息

王牌软件,兼职软件设计,软件修改,毕业设计。

本文出自 王牌软件,转载时请注明出处及相应链接。

本文永久链接: http://www.softwareace.cn/?p=850

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量