我有 C++ 和 C# 方面的知识,但 COM 对我来说是外星人。我有一个 VC++ COM DLL,其中实现了接口 ISAXContentHandler(属于 msxml6.DLL)的所有方法,如 startElement()、endElement、processingInstructions()、characters() 等。即这些接口方法在VC++ COM DLL 中实现。我想将此 VC++ COM DLL 转换为 C# DLL,以便我可以从我的 C# 应用程序调用此转换后的 C# DLL。
我不明白从哪里调用这些接口方法。因为在我的 VC++ COM DLL 中没有“函数调用语句”。
例如:-----VC++ COM DLL中实现的接口方法之一是这样开始的--->
**HRESULT STDMETHODCALLTYPE ContentHandler_SAX::startElement(
/* [in] */ wchar_t __RPC_FAR *pwchNamespaceUri,
/* [in] */ int cchNamespaceUri,
/* [in] */ wchar_t __RPC_FAR *pwchLocalName,
/* [in] */ int cchLocalName,
/* [in] */ wchar_t __RPC_FAR *pwchRawName,
/* [in] */ int cchRawName,
/* [in] */ ISAXAttributes __RPC_FAR *pAttributes)**
该类正在从 msxml6.dll 实现 ISAXContentHAndler 接口。
我只知道 SAXContentHandler 是一个 XML 解析器。我不知道这个函数的这些参数是什么,而且它们使用 _RPC 关键字和 d 参数名称。而且我不明白,从哪里调用这些函数。