Во-первых, позвольте мне поблагодарить всех, кто помог мне в течение последних нескольких дней, у меня наконец есть обертка C ++ / CLI для моего класса C ++, которую я могу создавать в C #, спасибо StackOverflow!
Некоторыеиз этих функций в качестве параметров используются указатели, однако при использовании PInvoke вы можете просто объявить функцию небезопасной, а затем вызвать ее с ключевым словом ref, например,
[DllImport("DLLName.dll")]
public static unsafe extern someFunc(ref int);
// then in main...
int a;
someFunc(ref a);
, но как мне обернуть функции C ++, которые принимаютпараметры указателя в C ++ / CLI, так что я могу вызывать их из C #?
Спасибо.
EDIT - мои функции подписи
UINT Init(char* info[], int amount, int ID1, int ID2)
UINT GetJPValues(SJPInfo* jpi, int iTimeoutMS)
UINT GetNums(int amount, int* out, int iTimeoutMS)
UINT GetJPWValues(SJP* jp, int ID, UINT stake, int iTimeoutMS)
UINT Confirm(bool *bConfirmed, int ID, int iTimeoutMS)
JPInfo и SJP являются структурами C ++которые содержат только данные, я создал версии C #, которые упакованы так же, как и их аналоги из C ++, но я также не уверен, как я могу использовать структуры C # в качестве параметра для функций C ++ / CLI, которые затем вызывают функции C ++.
РЕДАКТИРОВАТЬ 2 - Забыл упомянуть, что структуры просто заполнены данными из winsock recv в коде C ++, поэтому они могут бытьпередается как char *?