Я конвертирую функцию из 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
В С# я объявляю функцию как:
[DllImport("archivedll")]
public static extern int RequestOperation(int dth ,StringBuilder searchRequestBuf, int bufferLen, int fieldNum, int op, string value);
При вызове RequestOperation из C# возникает исключение:
[System.AccessViolationException] = {"Попытка чтения или записи защищенной памяти. Часто это указывает на то, что другая память повреждена."}
Мне удалось вызвать множество других подобных функций, но только эта функция выдает исключение.