进程间c ++和vb.net应用程序之间的通信

时间:2010-12-12 21:47:29

标签: c++ vb.net

我有一个c ++控制台应用程序,它有一个变量,比如说,vardata。我希望我的vb.net应用程序访问vardata的内容。我想我可以通过将vardata保存到剪贴板来做到这一点,vb.net应该得到剪贴板文本。问题是vardata的内容正在改变150次/秒,当vb.net应用程序试图获取剪贴板文本时,我遗漏了很多变化。是否有任何就绪函数可用于将数据保存在内存空间(c ++端)并从我的vb.net应用程序(vb.net端)访问它。

提前致谢

2 个答案:

答案 0 :(得分:3)

非常不开心的号码。共享内存也无法解决问题,您的VB.NET程序很容易失去对CPU 35毫秒或更长时间的访问权限。缺少更新。并且你真的不想燃烧周期来试图跟上,民意调查很难看。

另一种选择是使用套接字或命名管道。您不会丢失任何数据,也不会刻录循环。最重要的一点是,如果您的VB.NET程序没有响应,您的C ++程序可能会陷入困境。

请记住,人眼无法感知发生的速度超过每秒约30次。如果这是一个GUI要求,则每秒150次更新是浪费精力,实际上可以使您的GUI冻结。

答案 1 :(得分:1)

您应该将VB应用程序更改为库并将其加载到C ++进程中。有多种方式可以传递数据;最简单的可能是使用C ++ / CLI(在C ++中)或创建COM对象(在VB中)。