如何解决如何从.net传递2D数组调用C ++函数?
| 我正在尝试使用以下声明来调用该方法:extern \"C\" __declspec(dllimport) int __stdcall CalcDDtable(struct ddTableDeal tableDeal,struct ddTableResults * tablep);
因此定义了结构:
struct ddTableDeal {
unsigned int cards[4][4];
};
struct ddTableResults {
int resTable[5][4];
};
我试图这样称呼它:
<DllImport(\"dds.dll\",CallingConvention:=CallingConvention.StdCall)>
Public Shared Function CalcDDtable(ByVal deal As TableDeal,ByRef results As TableResults) As Integer
End Function
Public Function CalculateDeal() As Integer
Dim tableDeal As TableDeal
Dim tableResults As TableResults
Dim cards(3,3) As Integer
cards(0,0) = 32764
cards(1,1) = 32764
cards(2,2) = 32764
cards(3,3) = 32764
tableDeal.Cards = cards
Dim results(4,3) As Integer
tableResults=new TableResults
tableResults.Results = results
Dim errorCode = CalcDDtable(tableDeal,tableResults)
Return errorCode
End Function
End Class
Public Structure TableDeal
Dim Cards(,) As Integer
End Structure
Public Structure TableResults
Dim Results(,) As Integer
End Structure
这些结构都应为二维数组,索引分别为4,4和5,4。第二个是out参数。
我要去哪里错了?
对于那些想知道的人:这是由Bo Haglund编写的double虚拟求解器.dll
解决方法
答案可以在这里找到
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。