【发布时间】:2019-06-04 09:47:59
【问题描述】:
德尔福代码
procedure PassN1(out N1: widestring); stdcall;
begin
N1 := 'A';
end;
exports
PassN1;
end.
VB 代码
Private Declare Sub PassN1 Lib "C:\path.dll" Alias "PassN1" (<MarshalAs(UnmanagedType.BStr)> ByRef N1 As String)
...
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
Dim N1 = PassN1 'Expression does not produce a value.
Try
TabPage3.Text = N1
Catch ex As Exception
End Try
End Sub
我得到“表达式不产生值”。如何从 VB 中读取变量?
【问题讨论】:
-
您的过程有一个您正确声明的输出参数。所以传递一个字符串变量作为参数,而不是期望从它没有的方法返回值。
-
我该怎么做?
-
如何将变量传递给方法?
Dim s as string : PassN1(s)? -
第一次在VB中看到“:”语法。它有效,谢谢。如果需要,请正确发布答案,以便我将您的答案标记为正确。
-
:只是为了让它可以放在一行上,这样它在我们不能有多行的注释中仍然是有效的代码。实际程序中不需要:。