问题描述
VC2005,C++,ATL作了COM组件。VC2005,C#对其调用。接口方法是HRESULTTest(void);测试时能进入该函数并执行。返回时出错:未处理的“System.Runtime.Remoting.RemotingException”类型的异常出现在mscorlib.dll中。其他信息:ByRefvaluetypeparametercannotbenull.请帮帮忙
解决方案
解决方案二:
知道为什么了C#在调用时,应为[InterfaceType(ComInterfaceType.InterfaceIsDual)我写成了[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)晕啊,太菜了。
解决方案三:
C语言的代码typedefstruct{DJ_S8m_s8ServerIp[32];/*XMSserverip*/DJ_U32m_u32ServerPort;/*XMSserverport*/DJ_S8m_s8UserName[32];/**/DJ_S8m_s8UserPwd[32];/**/}ServerID_t;/**//**/ServerID_tcfg_ServerID;/*调用acsOpenStream建立与ACS服务器的连接*/r=XMS_acsOpenStream(&g_acsHandle,&cfg_ServerID,g_u8UnitID,//AppUnitID32,//sendQSize,inKBytes32,//recvQSize,inKBytescfg_s32DebugOn,//DebugOn/OffNULL);人家把C代码转成ActiveX控件在NET中AcsOpenStream(refintacsHandle,refintserverID,shortu8AppID,intu32SendQSize,intu32RecvQSize,ints32DebugOn,refintprivateData);refintserverIDserverID应该对应的是ServerID_t类型,那为怎么会变成(refintserverID)INT哪?怎么解决啊。