Преобразование объявления процедуры 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. Я думаю, что это проблема типов параметров, а не что-то вродеCharSet
или жеEntryPoint
вОбъявление DllImport, Я действительно просто застрял на том, как конвертировать*CString
к действительному типу C #.