我有一个函数,封装成标准dll,接口如下
DWORD _stdcall GetDatabaseList(DBLIST *&pDBList,DWORD &dwCount)
DBLIST是一个结构体。在c++里,调用这个函数,只要传递指针进去,然后,接口会申请一段内存,用于存储信息。
我想问问,这个c#能正常调用这个函数么?
如果可以,请写段示例代码。谢谢

解决方案 »

  1.   

    你最好自己本地测试下,这个不测试还真不好回答。
    不过C++/CLR是肯定可以调用它的。
      

  2.   

    给你个链接看看,是可以的
    http://topic.csdn.net/u/20120405/09/6b822479-021a-4422-948c-c4a5bd52ca21.html
      

  3.   

    有人解决了http://topic.csdn.net/u/20120405/09/6b822479-021a-4422-948c-c4a5bd52ca21.html
      

  4.   

    我重新看了下你的定义,你传递的不是结构体指针啊,而是结构体指针的地址引用,是按照引用传递,非直接传递。这种传递用C#调用是不行的,我有测试过,引用地址无法直接交换,能够交换的只能是里面的值。因此这种函数只有用C++/CLR重新封装下才能使用。