1
Я хочу вызвать функцию vB.net ByRef и String из java.Как вызвать JNA на VB.net ByRef String Function
vb.net dll утилит UnmanagedExports.
//java
String[] str = {"testJavaWrited"};
String[] str2 = {"testJavaWrited2"};
final VbWrapper wr = (VbWrapper)Native.loadLibrary("vbtestlib", VbWrapper.class);
wr.test(str,str2);
System.out.println(str); // not printed
System.out.println(str2); // not printed
// jna mapping
public interface VbWrapper extends Library {
public int test(String[] str,String[] str2);
}
//vb.net
<DllExport("test", CallingConvention.StdCall)>
Function test(ByRef str As String, ByRef str2 As String) As Integer
MsgBox("test Called") ' printed
MsgBox(str) ' printed
str = "testStringWrited"
str2 = "testStringWrited2"
Return 0
End Function ' heap error
Мне нужна ваша помощь.
'String []' не 'String', является то, что опечатка? –
Вы также можете попробовать 'cdecl' в качестве вызывающего соглашения, afaik JNA предполагает стандарт C, который будет использовать cdecl. –
use String не может обновить String args ... –