C#学习教程:从C++DLL中触发C#中的事件它通过TCP/IP向该服务器发送消息和从该服务器接收消息。现在它接收到某种类型的消息,其中包含一些需要发送到C#GUI的参数,后者将在屏幕上显示这些参数。请告诉我从这个DLL触发C#事件的有效方法。http://blogs.msdn.com/b/davidnotario/archive/2006/01/13/512436.aspx似乎回答了您的问题。您可以在C#端使用委托,在C++端使用标准回调。C++端:typedefvoid(__stdcall*PFN_MYCALLBACK)();int__stdcallMyUnmanagedApi(PFN_MYCALLBACK回调);C#端公共委托voidMyCallback();[DllImport("MYDLL.DLL")]publicstaticexternvoidMyUnmanagedApi(MyCallbackcallback);publicstaticvoidMain(){MyUnmanagedApi(delegate(){Console.WriteLine("被非托管端回调");});注意C++端应该是typedefvoid(__stdcall*PFN_MYCALLBACK)();extern"C"__declspec(dllexport)void__stdcallMyUnmanagedApi(PFN_MYCALLBACK回调);另一种选择是删除__stdcalltypedefvoid(*PFN_MYCALLBACK)();extern"C"__declspec(dllexport)voidMyUnmanagedApi在C++端(PFN_MYCALLBACK回调);C#方面:以上是C#学习教程:从C++DLL触发C#中的事件。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——publicdelegatevoidMyCallback();[DllImport("MYDLL.DLL",CallingConvention=CallingConvention.Cdecl))]publicstaticexternvoidMyUnmanagedApi(MyCallbackcallback);如上...本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
