Я конвертирую функцию из 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] =
{"Попытка чтения или записи защищена
объем памяти. Это часто является показателем
эта другая память повреждена. "}
Я успешно вызвал много других функций, подобных этой, но только эта функция вызывает исключение.