Преобразование объявления процедуры Clarion в C # DLLImport
Как я могу преобразовать это объявление процедуры Clarion в C #? Это'часть сторонней библиотеки DLL, написанной на C, которая неу меня много документации. Я перечислил прототип для метода в Clarion, который работает правильно. В C # яя не уверен, какой тип использовать для замены*CString
, Я старалсяchar[]
как @DanielC предложил, но это не такт работа. Я также обнаружил, что Кларионlong
32-битный (спасибо @ shf301).
Clarion:
SendRequest Procedure(*CString xData,Long DataLen,Long xTimeout),Byte,Virtual
C # (что ямы пробовали, что нет работа):
[DllImport("3RD_PARTY_API.dll")]
private static extern long SendRequest(ref string xData, int DataLen, int xTimeout);
Когда я звонюSendRequest
метод в C # я получаю стандартPInvokeStackImbalance был обнаружен ошибка от VS2010. Я думаю это'S проблема типов параметров, а не что-то вродеCharSet
или жеEntryPoint
вОбъявление DllImport, Я'м действительно застрял на том, как конвертировать*CString
к действительному типу C #.