Windows窗体应用程序,如何传递二维数组给vb.dll,C++,动态库

将二维数组视为由,行数、列数、行列对应的矩阵数,三个部分构成;
使用循环语句,一个值一个值地进行传递;
在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();

大致思路是这样,因为时间紧凑,很多容易查询到的小细节没有写,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值