I'm currently writing a wrapper class for the MSXML 4.0 parser in C++, and I have a problem to get the app running on systems where the parser SDK is not installed.
I'm using the #import
directive to import the classes from the msxml4.dll library into my code, but that doesn't seem to be enough. When I start the app on another system where the SDK is NOT installed, I'm catching an exception: "Class not registered". I think it's a COM exception, since I use the following smart pointer interfaces:
When creating the instance of the document, I pass the class ID CLSID_DOMDocument40 as the argument.
Well, it works just fine, except that the SDK needs to be installed to start the app. That's not bearable to force the user to install a software dev kit in order to use my apps!
As a side note:
If I use the older interface, in fact IXMLDOMDocument, and pass the class ID CLSID_DOMDocument, then it seems to work without installing the SDK. I already tried to #import
msxml4a.dll and #import
msxml4r.dll as well, but this only generated a compiler error.
Can you help me here?