首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用.TLH文件公开的所有功能吗?

我可以使用.TLH文件公开的所有功能吗?
EN

Stack Overflow用户
提问于 2014-11-22 00:36:40
回答 1查看 382关注 0票数 0

背景:

我有一个现有的代码,它使用Microsoft提供的功能,通过HTTP发布XML数据。具体来说,来自msxml4.dll (COM)的IServerXMLHTTPRequest (包括在MSXML3和up中)。我将迁移到msxml6.dll,因为不再支持msxml4.dll (被MSXML6取代)。More information about MSXML versions

代码:

代码语言:javascript
复制
#import "msxml6.dll"
using namespace MSXML2;
…
IServerXMLHTTPRequestPtr spIXMLHTTPRequest = NULL;
hr = spIXMLHTTPRequest.CreateInstance(__uuidof(ServerXMLHTTP40));

问题:

使用msxml4.dll和msxml6.dll构建我的应用程序时,下面的内容分别包含在msxml4.tlh和msxml6.tlh中:

代码语言:javascript
复制
struct __declspec(uuid("88d969c6-f192-11d4-a65f-0040963251e5"))
ServerXMLHTTP40;
    // [ default ] interface IServerXMLHTTPRequest2

正如我所理解的,在msxml6.tlh中,我可以使用msxml6.dll ( ServerXMLHTTP40FreeThreadedDOMDocument40XMLSchemaCache40等)来使用msxml6.dll(而不是将代码更改为ServerXMLHTTP60)。

现在,在一个新的Windows 7最终安装中搜索注册表,我找不到上面的uuid。因此,此代码在此计算机上失败:

代码语言:javascript
复制
hr = spIXMLHTTPRequest.CreateInstance(__uuidof(ServerXMLHTTP40));

问题:

如果msxml6公开了ServerXMLHTTP40,为什么我在注册表中找不到它?安装ServerXMLHTTP40 (未安装msxml4)时,是否可以使用msxml4?

需要更多的信息吗?告诉我就行了。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-22 09:13:05

.TLH文件(作为从.TLB导入的产品,这反过来又是.IDL文件的编译版本)是对接口、结构、方法等的描述,这些接口、结构和方法用于通过COM与另一个对象对话。无法保证或保证实现这些接口的另一方已安装或以其他方式可用,甚至根本不存在。

是的,您的签名是为了您的方便而定义的。您可能需要安装实现该功能的运行时。MSXML 4可能需要单独安装,而不管您从哪里获得开发细节。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27072693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档