Передача делегата Visual C ++ в собственный класс C ++ - PullRequest
2 голосов
/ 07 февраля 2012

У меня есть собственный класс, который требует указателя функции в конструкторе.Я попытался выполнить поиск по форумам, но не смог найти то, что искал.

Собственный класс выглядит следующим образом:

class NativeClass{
    NativeClass(std::string(*callback)(std::string args)){
    //native code goes here
    }
};

Как лучше всего передать делегата?Любая помощь будет оценена.

1 Ответ

3 голосов
/ 07 февраля 2012

Для этого вам нужно использовать Marshal.GetFunctionPointerForDelegate().

Обратите внимание, что при этом будет возвращен указатель на функцию, которая использует соглашение о вызовах stdcall.Вы можете указать другое соглашение о вызовах, используя атрибут UnmanagedFunctionPointer в объявлении делегата.

...