![]() |
1
4
如果你想在两个进程之间进行通信,你有很多选择,正如rerun在他的回答中所说。您可以将共享内存(内存映射文件)和命名的同步对象(如信号量和事件)添加到他的列表中。我肯定还有其他人。 如果你希望C++应用程序在C++应用程序中调用函数,那么你的选项就更有限了。WCF不是唯一的解决方案,甚至可能不是首选的解决方案。您可以将C#公开为COM接口。这里有一种方法。 http://support.microsoft.com/kb/828736 |
![]() |
2
2
|
![]() |
3
1
仅举几个例子。基于文件、TCP/IP、管道、命名管道、邮件列表、MQ、windows消息, |
![]() |
4
1
如果C++程序是“主管”,那么吉姆@提到的COM互操作可能是您唯一的选择。如果它是双向的,你也可以做“反向pCokes”(不是正式名称),其中C++代码将委托转换为函数指针,C++中的PInvokes A(扁平C样式)函数传递给函数指针,然后,C++代码使用函数指针运行任何委托方法,而C方法则位于委托的末尾。虽然这需要更多的管道,但它使您免去了COM互操作的性能影响。或者,如果你觉得很勇敢,你可以编写一个托管C++ + CLI类,它用通常的方式调用你的C++代码,并借助GCROOT & lt;&模板;从你的C++代码调用它。 http://www.gregcons.com/KateBlog/CallingManagedCodeFromNativeCode.aspx 有指向第三种方式的博客条目的链接。 http://www.gregcons.com/KateBlog/IntroToCOMInterop.aspx 已经有4年历史了,有一篇MSDN文章的链接,对前两个选项进行了一些扩展。 PS:Web服务作为在同一台机器上由同一个开发人员编写的两个程序之间进行通信的一种方式,几乎从来不是正确的答案。并不是说它不起作用,但如果你能控制两端,就有更快更容易的方法。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 7 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 7 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 7 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 7 月前 |