首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中怎样将double指针传给C++的DLL解决办法

2012-01-10 
C#中怎样将double指针传给C++的DLL在一个C++写的DLL中,有一个以struct指针为参数的接口函数,例如struct So

C#中怎样将double指针传给C++的DLL
在一个C++写的DLL中,有一个以struct指针为参数的接口函数,例如
struct SourceData
{
  double* pData;
  int nSize;
}
现在要在C#中调用这个函数,相应的struct定义为
public struct SourceData
{
  public double[] pData;
  public int nSize;
}
但现在有一个问题C#的double数组必须要转换为非托管的数组才行保证数组中值不变化,对于这样的结构,怎样定义pData?

谢谢

[解决办法]
public struct SourceData 

public IntPtr pData; 
public int nSize; 
}

传入的时候自己通过Marshal把数组写到IntPtr的内存。
传出的时候通过Marshal的Read方式把内存内容读到数组就可以了。

自己转就可以了。
[解决办法]
http://www.codeproject.com/useritems/unmanaged_memory_pointers.asp

热点排行