Преобразование объявления процедуры 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 #.

Ответы на вопрос(4)

Ваш ответ на вопрос