[高分求助] C# 调用一个COM接口报出异常的问题
原来那个帖子沉了,重发一下。
使用c#调用COM的一个接口,抛出异常
未处理的“System.AccessViolationException”类型的异常出现在 SDKTestClientSampleCodeCSharp.exe 中。
其他信息: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
1. 这个COM接口在C++ 中的格式为
virtual HRESULT __stdcall StartConversationEx (
/*[in]*/ struct CALL_INFO callInfo,
/*[in]*/ enum CALL_MEDIA_TYPE eCallMediaType,
/*[out]*/ long * pConversationId ) = 0;
CALL_INFO的定义如下:
CALL_INFO
{
enum ADDRESS_TYPE addressType;
BSTR bstrValue;
};
2. 在C#工程中添加引用后,元数据中的格式为
void StartConversationEx(CALL_INFO callInfo, CALL_MEDIA_TYPE eCallMediaType, out int pConversationId);
采用下面代码调用:
CALL_INFO callInfo;
callInfo.addressType = ADDRESS_TYPE.ADDRESS_URI;
callInfo.bstrValue = m_strTelnos;
m_phone.StartConversationEx(callInfo, CucRtxExeProviderLib.CALL_MEDIA_TYPE.CALL_MEDIA_VIDEO,
out m_ConversationId);
大侠帮看看是我C#使用的有问题吗,求指教