Могу ли я использовать все функциональные возможности, которые я вижу в файле .TLH?

Фон:

У меня есть существующий код, который использует функциональные возможности, предоставленные Microsoft, для публикации данных XML через HTTP. В частности, IServerXMLHTTPRequest (входит в MSXML3 и выше) из msxml4.dll (COM). Я перехожу к msxml6.dll, так как msxml4.dll больше не поддерживается (заменено MSXML6). Подробнее о версиях MSXML.

Код:

#import "msxml6.dll"using namespace MSXML2;
…
IServerXMLHTTPRequestPtr spIXMLHTTPRequest = NULL;
hr = spIXMLHTTPRequest.CreateInstance(__uuidof(ServerXMLHTTP40));

Проблема:

При создании моего приложения с msxml4.dll, а также с msxml6.dll в msxml4.tlh и msxml6.tlh, соответственно, включается следующее:

struct __declspec(uuid("88d969c6-f192-11d4-a65f-0040963251e5"))
ServerXMLHTTP40;
// [ default ] interface IServerXMLHTTPRequest2

Как я понимаю, глядя на msxml6.tlh, я могу использовать ServerXMLHTTP40 (и не меняйте код на ServerXMLHTTP60) с msxml6.dll (то же самое для DOMDocument40, FreeThreadedDOMDocument40, XMLSchemaCache40 так далее.).

Теперь, ища реестр в новой установке Windows 7 Ultimate, я не могу найти uuid выше. В результате этого кода происходит сбой на этой машине:

hr = spIXMLHTTPRequest.CreateInstance(__uuidof(ServerXMLHTTP40));

Вопросы:

Если msxml6 представляет ServerXMLHTTP40, почему я не могу найти его в реестре? Могу ли я использовать ServerXMLHTTP40 когда msxml6 установлен (msxml4 не установлен)?

Нужна дополнительная информация? Просто дай мне знать. Спасибо!

0

Решение

.Файл TLH (как продукт импорта из .TLB, который, в свою очередь, является скомпилированной версией файла .IDL), представляет собой описание интерфейсов, структур, методов и т. Д., Которые используются для связи через COM с другим объектом. Нет никаких гарантий или обещаний, что другая сторона, реализующая эти интерфейсы, установлена ​​или иным образом доступна, или вообще существует.

Да, у вас есть подписи, определенные для вашего удобства. Возможно, вам придется установить среду выполнения, которая реализует эту функциональность. MSXML 4 может потребоваться отдельная установка независимо от того, откуда вы получили подробности разработки.

2

Другие решения


По вопросам рекламы [email protected]