我正在用c#编写COM接口dll,我希望它可用于以c ++和java编写的其他应用程序中。
这是我第一次尝试用C#编写COM接口dll。
例如,我的问题是有人试图用错误的参数调用我的函数。我应该只抛出一个简单的.net异常吗?
我正试图从另一个像这样的简单c ++应用程序使用com接口,但我没有任何问题。
#import "xxx.tlb"
#include <objbase.h>
#include "pch.h"
#include <iostream>
using namespace ...;
int main()
{
CoInitialize(0); //Initialize all COM Components
MyComApi::MyComApiInterfacePtr myPtr;
HRESULT hRes =
myPtr.CreateInstance(__uidof(MyComApi::MyClass));
if (hRes == S_OK)
{
bool test = myPtr->myTestFunction(0,5,6);
}
CoUninitialize();
}
如果myTestFunction中引发了.net异常,我该如何捕获异常和异常消息?