dll은 델파이로 작성된 설명서에 따라 xml 경로를 SET_XML()로 먼저 설정 한 다음 원하는 모든 함수를 사용해야합니다.dll C# AccessViolationException
델파이 기능 설명서있어서, 상기 설명서에 따라 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