vb-VB 调用fortran函数(已经生成dll),怎么实现数组的传递?

问题描述

VB 调用fortran函数(已经生成dll),怎么实现数组的传递?

VB调用fortran生成的dll。传数值,我已经实现,但是传数组地址没成功,
但是用C语言就可以找到数组的首地址,但是VB就不行,请VB的高手指教

fortran 代码如下(生成dll):

subroutine ComputeFwd_DC1D(Pm,nParams,AB2,nd)
!DEC$ ATTRIBUTES REFERENCE::Pm,nParams,AB2,nd
implicit none
integer i
integer nParams,nd
!real(8),dimension(1:nParams):: Pm
!real(8),allocatable::Pm(:)
!real(8) Pm(10)
real(8) Pm(nParams)

real(8) AB2

do i=1,nParams
Pm(i)=150
enddo

!Pm(1)=0

AB2=AB2+1000

nd=nd+10

return
endsubroutine ComputeFwd_DC1D

VB代码:

前面需声明:
Private Declare Sub COMPUTEFWD_DC1D Lib "TEST1.dll" (ByRef Pm() As Double, ByRef nParams As Integer, ByRef AB22 As Double, ByRef nd As Integer)

    调用时:
        Call COMPUTEFWD_DC1D(Pm, nParams, AB22, nd)

    Pm是数组,但是无法传递数组,AB22是单个数,就可以传递

解决方案

VB也可以,直接传数组名。注意数据类型。

解决方案二:

数组名试过了,类型一致,但还是不行?你有实例?

解决方案三:

数组名试过了,类型一致,但还是不行?你有实例?

解决方案四:

数组名试过了,类型一致,但还是不行?你有实例?

解决方案五:

数组名试过了,类型一致,但还是不行?你有实例?

解决方案六:

数组名试过了,类型一致,但还是不行?你有实例?

解决方案七:

数组名试过了,类型一致,但还是不行?你有实例?

时间: 2024-08-17 20:05:37

vb-VB 调用fortran函数(已经生成dll),怎么实现数组的传递?的相关文章

javascript数组与VB DLL中中数组的传递问题

各位:我现在在JavaScript中定义一个一维数组,然后调用VB编写的DLL对象,在DLL对象给此数组赋值,然后在JavaScript读出已经赋值的数组.请问如何操作. DLL对象: TestPrj.Test Public Sub Test(strName() As Variant) strName(0) = "MR " strName(1) = "zhang "End Sub JavaScript: <Script language= 'JavaScrip

分享如何在VB中调用VC编写的DLL_vb

一般来说,VB和VC共同编程有3种方式:一种是VC生成DLL,在VB中调用DLL:一种是VC生成ActiveX控件(.ocx),在VB中插入:还有一种是在VC中生成ActiveX Automation服务器,在VB中调用.相对而言,第一种方法对VC编程者的要求最低,但要求你的伙伴进行配合,我推荐这种方法. 先说说VC++的编程.首先在VC++中生成Win32 DLL工程.在这个工程中添加几个函数供VB用户调用.一个DLL中的函数要想被VB调用,必须满足两个条件:一是调用方式为stdcall,另一

C#调用API函数EnumWindows枚举窗口的方法

原文 http://blog.csdn.net/dengta_snowwhite/article/details/6067928 与C++不同,C#调用API函数需要引入.dll文件,步骤如下:   1. 添加命名空间 using System.Runtime.InteropServices;   2. DllImport调入EnumWindows等函数         [DllImport("user32.dll")]         //EnumWindows函数,EnumWind

c-关于VB.net调用C生成的dll,遇到的比字符集不匹配还纠结的问题

问题描述 关于VB.net调用C生成的dll,遇到的比字符集不匹配还纠结的问题 升级项目.从6.0到2012.升级后出现调用dll中c的方法:DLLEXPORT BOOL WINAPI InsUpdDel( LPSTR lpSqlStr LPRTNINFO RtnInfo )其中 LPSTR lpSqlStr 是_char × 类型,在API _winnt.h中定义:winnt.h // ANSI (Multi-byte Character) types//typedef Null_termin

delphi-求救!!! 调用一个DLL文件的函数,提供的调用方法好像是Delphi,VB怎么调用!

问题描述 求救!!! 调用一个DLL文件的函数,提供的调用方法好像是Delphi,VB怎么调用! 提供的调用方法如下 3.2 封装模式 接口动态库的文件名为nxmi.dll,HIS直接调用nxmi.dll, 调用之前请先安装读卡环境,安装程序为inst.exe. 3.3 调用方法 对外提供的接口函数: Procedure invoke(params :PChar; result : PChar) ; 我现在在VB中写的如下: 在模块下定义 Public Declare Function invo

请高手帮我解决一个VB.NET调用c++ DLL 中的回调函数的问题

问题描述 我有个test.dll是c++写的dll,现在我要用vb.net调用这个dll中的SetCallback回调函数,请问怎么在vb.net中实现,请高手们具体列出代码,应我是新手,谢谢.以下是c++中的头文件定义的一部分typedefvoid(__stdcall*CCallback)(unsignedlongmsg,unsignedlonghparam,unsignedlonglparam);extern"C"voidR888DLL_API__stdcallSetCallbac

用VB生成DLL封装ASP代码,连接数据库

封装|连接数据库 这篇文章以VB生成的DLL封装ASP代码来连接数据库(以Access数据库为例). 一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 '//Proconn.asp<%dim ProConnset ProConn=Server.CreateObject("ADODB.CONNECTION")ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ

VB.net 在64位win7系统下,调用API函数,在传址时为什么总会发生异常。。

问题描述 请帮教各位高人,VB.net在64位win7系统下,调用API函数,在传址时为什么总会发生异常..函数声明:DeclareSubdmc_move_line3Lib"DMC.dll"(ByRefaxisAsShort,ByValDist1AsInteger,ByValDist2AsInteger,ByValDist3AsInteger,ByValposi_modeAsShort)函数调用:DimAxisArray(3)AsShortDimLineEndArray(3)AsInt

用VB生成DLL封装ASP连接数据库的代码

这篇文章以VB生成的DLL封装ASP代码来连接数据库(以Access数据库为例). 一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 '//Proconn.asp <% dim ProConn set ProConn=Server.CreateObject("ADODB.CONNECTION") ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ=&quo