日期:2014-05-17  浏览次数:20757 次

关于c#调用c++函数,函数参数结构体指针
我有一个函数,封装成标准dll,接口如下
C/C++ code
DWORD _stdcall GetDatabaseList(DBLIST *&pDBList,DWORD &dwCount)

DBLIST是一个结构体。在c++里,调用这个函数,只要传递指针进去,然后,接口会申请一段内存,用于存储信息。
我想问问,这个c#能正常调用这个函数么?
如果可以,请写段示例代码。谢谢

------解决方案--------------------
有人解决了

http://topic.csdn.net/u/20120405/09/6b822479-021a-4422-948c-c4a5bd52ca21.html
------解决方案--------------------
我重新看了下你的定义,你传递的不是结构体指针啊,而是结构体指针的地址引用,是按照引用传递,非直接传递。这种传递用C#调用是不行的,我有测试过,引用地址无法直接交换,能够交换的只能是里面的值。因此这种函数只有用C++/CLR重新封装下才能使用。