I am writing a C# library to be used by native C++ application. I am using C++/CLI as the Interoperability mechanisim.
I require to pass a callback function from C++ to C# (using C++/CLI as the intermediate layer). C# library needs to call the C++ function with a zero terminated string of wide characters; i.e. the prototype of the callback function is
Func(LPCWSTR pszString);
There are other parameters but they are immaterial for this discussion.
I searched net and found Marshal.GetDelegateForFunctionPointer Method wich I can use. The problem with this is that it converts System.String from C# to char* and not wchar_t* which I am looking for.
Also, what is the best method of achieving this- code example including the C++/CLI portion, if possible.
C++/CLI dll is dependent on C# dll. Method needs to be called synchronously.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…