在非托管C ++ DLL和托管C#UI之间发送信息

时间:2013-11-28 17:17:25

标签: c# c++ unmanaged managed

好的,方案如下。

Application1能够加载和调用非托管C ++ DLL。

我想在C#中编写另一个用户界面,让我的生活更轻松。

然后我希望DLL能够向C#可执行文件发送信息,并希望C#可执行文件能够向DLL发送信息。

来回传递的信息并不复杂。它只是一个字符串。

关于如何做到这一点的任何想法。

1 个答案:

答案 0 :(得分:1)

This应该回答你的问题。基本上最简单的选项是命名管道用于同一台机器上的通信,套接字用于不同的机器。
更新
经过更好的考虑,答案取决于“谁在掌控?”在你的场景中。
1.如果C#可执行文件负责调用您的非托管DLL并发送/检索信息,那么您应该使用Platform Invoke
2.如果您希望非托管DLL决定何时向应用程序发送数据,那么首先您应该将DLL转换为完整的应用程序,之后再使用interprocess communication