Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请参阅一个数组VBA_Vba - Fatal编程技术网

请参阅一个数组VBA

请参阅一个数组VBA,vba,Vba,在VBA中调用DLL函数时,VBA停止运行。该函数需要一个数组和一个整数,但当我调试程序时,该函数不起作用 DLL由其他人制作,DLL的信息可用 Declare Function loadModel Lib "Test.dll" (ByVal numArgs As Integer, args As String) As Integer filename = "Tjet.mxl" ArgumentList(0) = "Filename:" ArgumentList(1) = file

在VBA中调用DLL函数时,VBA停止运行。该函数需要一个数组和一个整数,但当我调试程序时,该函数不起作用

DLL由其他人制作,DLL的信息可用

Declare Function loadModel Lib "Test.dll" (ByVal numArgs As Integer, args As String) As Integer

  filename = "Tjet.mxl"
  ArgumentList(0) = "Filename:"
  ArgumentList(1) = filename
  ArgumentList(2) = "Show model:"
  ArgumentList(3) = False
  ArgumentList(4) = "Show Progress"
  ArgumentList(5) = True

  model = loadModel(6, ArgumentList(0))
然而,这是行不通的。如何在vba中引用数组

DLL的Delphi代码为:

TdLoadModel = function(numArgs: Integer; args: PPAnsiChar): Integer; cdecl

loadModel : TdLoadModel

// loadmodel
SetLength(ArgumentList, 6); //will create an array of 3 AnsiStrings
ArgumentList[0]:='-filename';
ArgumentList[1]:='TJET.mxl';
ArgumentList[2]:='-showModel';
ArgumentList[3]:='false';
ArgumentList[4]:='-showProgress';
ArgumentList[5]:='true';
PArgumentsList := @ArgumentList[0];
loadModel(6, PArgumentsList);
当我加入参数时,我仍然有一些错误。我将错误发送给程序和DLL的制作者,但我仍在等待答复。
我的问题是:期望DLL确实是一个数组,还是我的期望是错误的?

函数不期望字符串数组,而是期望单个字符串。假设声明正确,您应该加入ArgumentList

model = loadModel(6, Join(ArgumentList))

你怎么知道它需要一个空格分隔的参数字符串?@Jean-FrançoisCorbett One知道函数需要声明中的字符串。有人猜测,参数列表很可能是以空格分隔的,因为:1是大多数库函数和命令解释器的常规做法,2是Join的默认值。您如何知道.dll需要一个数组?您说过:函数需要一个数组和一个整数,但您的声明似乎顺序错误,而且您传递的是单变量integer和String,而不是我认为应该是args作为String的数组