我的C++ DCOM组件接口定义如下:
//自定义数据结构
struct DcapData
{
double Value;
DWORD Status;
};HRESULT CTestApp::SetValue(int nDataCount, VARIANT *pvDataArray)
{
DcapData * pData = (DcapData *)pvDataArray->parray->pvData;
}
HRESULT CTestApp::GetData(WORD *DataCount, VARIANT *vData)
{
DcapData * pData;
int totalData = 2;
size_t datasize = sizeof(DcapData) * totalData;
VARIANT vMem;vMem.vt = VT_ARRAY | VT_I1;
vMem.parray = SafeArrayCreateVector(VT_I1, 0, datasize);
pData = (DcapData *)vMem.parray->pvData;for(int i=0;i<2i++)
{
memcpy(&pData[i],m_DataArray[i]->Data,sizeof(DcapData));
}*DataCount = totalData;
*vData = vMem;
}请问如何用C#调用DCOM,重要的是如何在C#定义一个DcapData结构体,将结构体转为object,再传入DCOM组件中的VARAINT,我试了好久都没试出来,请大家帮忙。
//自定义数据结构
struct DcapData
{
double Value;
DWORD Status;
};HRESULT CTestApp::SetValue(int nDataCount, VARIANT *pvDataArray)
{
DcapData * pData = (DcapData *)pvDataArray->parray->pvData;
}
HRESULT CTestApp::GetData(WORD *DataCount, VARIANT *vData)
{
DcapData * pData;
int totalData = 2;
size_t datasize = sizeof(DcapData) * totalData;
VARIANT vMem;vMem.vt = VT_ARRAY | VT_I1;
vMem.parray = SafeArrayCreateVector(VT_I1, 0, datasize);
pData = (DcapData *)vMem.parray->pvData;for(int i=0;i<2i++)
{
memcpy(&pData[i],m_DataArray[i]->Data,sizeof(DcapData));
}*DataCount = totalData;
*vData = vMem;
}请问如何用C#调用DCOM,重要的是如何在C#定义一个DcapData结构体,将结构体转为object,再传入DCOM组件中的VARAINT,我试了好久都没试出来,请大家帮忙。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货