PL/I DLL を入手し、その DLL を VB.Net アプリケーションにインポートしようとしています。最初の試行は機能しましたが、数回の呼び出しの後、プログラムはコメントなしで終了しました。また、これらの関数を 2 つの異なるスレッドから 2 回呼び出すことはできません。paramone の DLL から結果を取得します。これが正しく機能しない理由と、それを機能させる方法はありますか?
<DllImport(("PLIDLL.dll"), CallingConvention:=CallingConvention.StdCall)> _
Public Shared Sub MYFUNC(ByVal LogonString As String, _
<MarshalAs(UnmanagedType.VBByRefStr)> ByRef paramone As String, _
ByVal paramtwo As String)
End Sub
不明な点があれば質問してください。
こんにちはリム
PS: ByRef 値の代わりに String を返すように、PL/I コードを書き直そうとしました。同じ問題。
PLI のサブ:
MYFUNC: PROC(LOGONSTRING,PARAMONE,PARAMTWO) REORDER
OPTIONS(FROMALIEN NODESCRIPTOR
BYADDR LINKAGE(STDCALL));
DEFAULT RANGE(*) STATIC;
DCL LOGONSTRING CHAR(30);
DCL PARAMONE CHAR(2033);
DCL PARAMTWO CHAR (5500);