日期:2014-05-20  浏览次数:21343 次

(最高难度)C#调用c++ DLL(返回结构数组指针) ,顶者有分!
如何把返回c++结构数组指针,c#结构数组??   请大侠帮助

c++定义:
QUERY* QueryTransactionHistory(DWORD   dwIP,int   nPort,TRANSACTION   *   ,int*   outNum,int*   nErrorCode);

TRANSACTION结构:
typedef   struct   TRANSACTION
{
char account[19];
int maxNum;
char startDate[16];
char endDate[16];
}TRANSACTION;

QUERY结构:
typedef   struct   QUERY
{
int id;
int itemAmount;
int gold;
int silver;
char itemName[30];
}QUERY;



------解决方案--------------------
关注
------解决方案--------------------
调一下先...
------解决方案--------------------
ding
------解决方案--------------------
帮顶
------解决方案--------------------
帮顶
------解决方案--------------------
帮顶
------解决方案--------------------
//QUERY* QueryTransactionHistory(DWORD dwIP,int nPort,TRANSACTION * ,int* outNum,int* nErrorCode);

class TRANSACTION
{
public char account[19];
public int maxNum;
public char startDate[16];
public char endDate[16];
}

class QUERY
{
public int id;
public int itemAmount;
public int gold;
public int silver;
public char itemName[30];
}

[DllImport( "你的dll.dll ", CharSet=CharSet.Ansi)]
public static extern QUERY QueryTransactionHistory(string dwIP, int nPort, ref TRANSACTION TR, ref int outNum, ref int nErrorCode);
------解决方案--------------------
记得加

using System.Runtime.InteropServices;
------解决方案--------------------
学习
------解决方案--------------------
关注

------解决方案--------------------
[DllImport( "你的dll.dll ", CharSet=CharSet.Ansi)]
public static extern QUERY[] QueryTransactionHistory(string dwIP, int nPort, ref TRANSACTION TR, ref int outNum, ref int nErrorCode);

建议封装成com组件,使用更加方便。。。。
------解决方案--------------------
:)

忘了是返回数组:)

QUERY[]
------解决方案--------------------
帮顶
------解决方案--------------------
学习学习
------解决方案--------------------
继续关注
------解决方案--------------------
不懂,顶一下
------解决方案--------------------
学习
------解决方案--------------------
mark
------解决方案--------------------
以前好像有人问过。帮顶一下!
------解决方案--------------------
呵呵,如果没错的话,以前那个人应该是我
现在来学习一下,哪位来指点下
------解决方案--------------------
现在来学习一下,哪位来指点下