Я пишу библиотеку C # для использования собственным приложением C ++.Я использую C ++ / CLI в качестве механизма взаимодействия.
Мне требуется передать функцию обратного вызова из C ++ в C # (используя C ++ / CLI в качестве промежуточного уровня).Библиотека C # должна вызывать функцию C ++ с завершенной нулем строкой широких символов;то есть прототип функции обратного вызова:
Func (LPCWSTR pszString);
Есть и другие параметры, но они несущественны для этого обсуждения.
Я искал net и нашел Marshal.GetDelegateForFunctionPointer Метод, который я могу использовать.Проблема в том, что он преобразует System.String из C # в char *, а не в wchar_t *, который я ищу.
Кроме того, каков наилучший метод для достижения этого примера кода, включая C ++ / CLIчасть, если это возможно.C ++ / CLI DLL зависит от C # DLL.Метод должен вызываться синхронно.