Мой обратный вызов в неуправляемом C++ это:Управляется неуправляемым обратным вызовом с управляемыми параметрами?
typedef void (*ErrorCallback)(OutputLog& log, std::string& message);
Это использование (код упрощен):
class OutputLog
{
private:
ErrorCallback _callback;
public:
void Error(std::string& message)
{
// print message to console/stream here
if (_callback)
{
_callback(*this, message);
}
}
};
В C++/CLI я создал класс-оболочку для моего неуправляемого класса OutputLog. Я определил функцию обратного вызова, как, например:
public delegate void ErrorCallback(OutputLog^ log, String^ message);
Так что я знаю, что я могу получить указатель на функцию с помощью Marshal::GetFunctionPointerForDelegate
, но как преобразовать управляемые параметры (OutputLog^ log
и String^ message
) их неуправляемыми коллегами (OutputLog& log
и std::string& message
)?
Отлично! Спасибо. –