Tag: wchar

从C ++传递一个函数指针,由C#调用 – 函数的参数包括一个宽字符串(LPCWSTR)

我正在编写一个C#库供本机C ++应用程序使用。 我使用C ++ / CLI作为互操作性机制。 我需要将回调函数从C ++传递给C#(使用C ++ / CLI作为中间层)。 C#库需要使用零终止的宽字符串来调用C ++函数; 即回调函数的原型是 Func(LPCWSTR pszString); 还有其他参数,但它们对于这个讨论并不重要。 我搜索网,发现Marshal.GetDelegateForFunctionPointer方法,我可以使用。 这个问题是它将System.String从C#转换为char *而不是我正在寻找的wchar_t *。 此外,如果可能的话,实现此代码示例的最佳方法是什么,包括C ++ / CLI部分。 C ++ / CLI dll依赖于C#dll。 方法需要同步调用。