【问题标题】:CallBack function from c# to c++从 c# 到 c++ 的回调函数
【发布时间】:2010-02-18 14:07:33
【问题描述】:

我有一个 C# exe 和一些 vc++ dll 的 .我正在 C# 中创建一个 callBackFunction,它以结构作为其参数。我的 c++ dll 将填充这个结构并将其返回。但是 95% 的时间我的 Exe 崩溃了。我的 dll 是多线程的,我的 C# 中有 backgroundWorker。我已经放了 try catch 块来检查是否有任何异常发生,但没有捕获到异常。任何人都可以建议一种更好的方法将数据从我的 vc++ dll 发送到 c# exe

【问题讨论】:

  • 您需要输入示例代码。传递参数和处理 C++ 回调有许多不同的方法,如果操作不当,其中任何一种方法都可能出现严重错误。还要注意,尽管文档说了什么,.NET 习惯于从 C++ 下收集托管 thunk 的垃圾。

标签: c# c++ visual-c++ dll callback


【解决方案1】:

这必须有效:
(c#)

namespace Test
{
    public class CallbackClass
    {
        public void Callback(string s)
        {
            MessageBox.Show(s);
        }
    }
}  

(c++/cli)

...
Test::CallbackClass::Callback(gcnew System::String("woof!");
...

【讨论】:

    【解决方案2】:

    如果您愿意,您可以实现 COM 接口,然后您可以从任何 .Net 客户端从该接口调用方法。

    实现的基本example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多