将二维数组视为由,行数、列数、行列对应的矩阵数,三个部分构成;
使用循环语句,一个值一个值地进行传递;
在vb中新建数组,由行数、列数、行列数对应值,一个值一个值地接收,
一、构造Windows窗体应用程序
VS2008–文件–新建–项目–Visual C++ --CLR–Windows窗体应用程序–名称
二、构造动态库
生成dll:文件–新建–项目–其他语言–Visual Basic–类库–名称–ClassLibrary1,
Classbrary1成功生成解决方案,则会自动生成dll,
调用dll:项目–引用–通用属性–框架和引用–添加新引用–最近–Class Library1.dll,
dll文件首先构造二维数组、全局变量,写函数,返回值
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Threading
Imports Microsoft.VisualBasic
Public Class Class1
Dim e11(625, 3) As Double'全局变量
Dim ab As String
Public Function fa1(ByVal i1 As Integer, ByVal j1 As Integer, ByVal ccc1 As Double) As Double
e11(i1, j1) = ccc1
'Return e11(34, 1)
End Function
Public Sub fb(ByVal Colums As Integer, ByVal Lines As Integer, ByVal direction As String)
''''''''''''自己写函数'''''''''''''''''''''
End Sub
Function fc1() As String
Return ab
End Function
End Class
三、VC++二维数组传递到动态库dll:
//=========================调用动态库===========================
ClassLibrary1::Class1 ^c = gcnew ClassLibrary1::Class1 ();
//向动态库传入c11[625][3]
int i1,j1;
for( i1 = 0; i1 < Colums * Lines; i1++ )
{
for( j1 = 0; j1 < 3; j1++ )
{
c->fa1( i1, j1, c11[i1][j1] );
}
}
四、VC++调用已经写好的vb函数,并接收返回值(少量),
//调用函数
c->fb (Colums,Lines,direction);
//从vb中返回数据
button11->Text = c->fc1();
大致思路是这样,因为时间紧凑,很多容易查询到的小细节没有写,