У меня есть .Net dll, который я зарегистрировал и могу вызывать методы из моего кода C #.
Я по сути следовал этому уроку: http://support.microsoft.com/kb/828736
теперь мне нужно сделать что-то в c # асинхронно, поэтому мне нужен какой-то способ рассказать о коде c ++, который я сделал.
Я создал такой метод:
public void Init(string server, IntPtr callback);
который я вижу в C ++ как:
Init(BSTR server, long callback);
Мне также нужно передать переменную обратно в код C ++, когда я вызываю ее.
В основном, у меня есть событие, которое запускается в коде C #, и мне нужен код C ++ для его обработки, включая аргументы событий.
Я рад читать сам, но ничего не могу найти. Я видел кое-что о событиях Windows … здесь
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385771(v=vs.85).aspx
но мы не используем заголовки окон, я не думаю, и я не хотел добавлять все эти вещи, если есть более простой способ сделать это.
Спасибо за чтение!
хорошо, это проще, чем я думал, но мне кажется, что это вуду …
в основном в C ++ добавить
void CALLBACK CppCallbackc()
{
std::cout << "test";
}
затем в C # добавить
public delegate void CppCallback();
и когда ты хочешь уволить,
Marshal.GetDelegateForFunctionPointer(cppCallback, typeof(CppCallback)).DynamicInvoke(null);
Других решений пока нет …