dllは、デルファイで書かれたマニュアルに従って、まずxmlパスをSET_XML()で設定してから、好きな関数を使用する必要があります。マニュアルに従ってdll C#AccessViolationException
Delphiの機能:マニュアルに従ってVBで
function SET_XML(var path: PAnsiChar): LongInt;
function GET_CALCULATION_FAN_ALONE(var fanDescription: PAnsiChar): LongInt;
が使用:
Public Declare Function SET_XML_PATH Lib "fan.dll" (ByRef path As String) As Long
Public Declare Function GET_CALCULATION_FAN_ALONE Lib "fan.dll" (ByRef path As String) As Long
Sub Main()
Dim a As Long, b As Long, Str_Result As String, Str_Input As String
Str_Input = "C:\Users\Sebastiaan\Documents\Visual Studio 2010\Projects\Lucam selectie\Lucam selectie\bin"
a = SET_XML_PATH(Str_Input)
Str_Result = "65464;;;1,2;;23;424,8;0,3766;;"
b = GET_CALCULATION_FAN_ALONE(Str_Result)
End Sub
ドを実行しているとき、私はC#
const string _dllLocation = "EbmPapstFan.dll";
[DllImport(_dllLocation)]
public static extern long SET_XML_PATH(ref String path);
[DllImport(_dllLocation)]
public static extern long GET_CALCULATION_FAN_ALONE(ref String fanDescription);
public Main()
{
String path = @"C:\Users\Sebastiaan\Documents\Visual Studio 2010\Projects\Lucam selectie\Lucam selectie\bin";
long a = SET_XML_PATH(ref path);
String fanDescription = "65464;;;1,2;;23;424,8;0,3766;;";
long c = GET_CALCULATION_FAN_ALONE(ref fanDescription);
}
をそれを書き直しました私はAccessViolationExceptionを取得するアプリケーション
保護されたメモリを読み書きしようとしました。これはしばしば、他のメモリが壊れていることを示します。
ブレークポイントを設定し、コードを段階的にデバッグする場合は、何もすべてうまくいかない。時々私はデバッグモードでエラーが発生しました( "long c = GET_CALU ...")
私は間違っていますか?
私はよく分からないが、私はこのエラーを見たとき、私はいつも(System.Diagnostics.Process.EnterDebugModeを考えています)。 – Cynede