ฉันกำลังแปลงฟังก์ชันจาก Visual Basic 6.0 เป็น:
Declare Function RequestOperation Lib "archivedll" (ByVal dth As Long, ByVal searchRequestBuf As String, ByVal buflen As Long, ByVal FieldNum As Long, ByVal OP As Long, ByVal value As String) As Long
ใน C # ฉันประกาศฟังก์ชันเป็น:
[DllImport("archivedll")]
public static extern int RequestOperation(int dth ,StringBuilder searchRequestBuf, int bufferLen, int fieldNum, int op, string value);
เมื่อเรียก RequestOperation จาก C# มันจะส่งข้อยกเว้น:
[System.AccessViolationException] = {"พยายามอ่านหรือเขียนหน่วยความจำที่ได้รับการป้องกัน ซึ่งมักบ่งชี้ว่าหน่วยความจำอื่นเสียหาย"}
ฉันประสบความสำเร็จในการเรียกใช้ฟังก์ชันอื่น ๆ มากมายเช่นนี้ แต่มีเพียงฟังก์ชันนี้เท่านั้นที่ส่งข้อยกเว้น