【问题标题】:how to share this same instance of lib by two programs如何由两个程序共享同一个 lib 实例
【发布时间】:2012-05-29 11:47:23
【问题描述】:

我在 java 中编写了使用某种 win lib 的程序,现在我想再编写一个程序来模拟另一个程序。我的意思是,它应该是这样的:

  • 第一个程序要求 lib 提供一些简单的数据(只是真假)
  • 和其他程序同时使用此库中的函数在此库中设置一些变量,这些变量可能会返回到第一个程序...
  • 这两个程序在 java 中首先是独立的(让我们说“getter”),在 c++ 中是第二个(“setter”)...我已经将 lib 中的所有变量设置为静态但它没有解决问题。

这种解决方案甚至可能吗?或者我必须使用某种套接字,否则

感谢重播

【问题讨论】:

  • 如果两者是不同的程序,那么我认为你应该进行进程间通信。

标签: java visual-c++ dll


【解决方案1】:

我一直在使用这种东西(Java + dll + 另一个程序),我可以看出从另一个程序执行的库和 Java 不共享静态变量,所以我认为你不会能够做到这一点。

我的示例使用大小为 0 的窗口在两个程序(Java 和 VB 6.0)之间交换消息,两个程序之间的第一次调用共享窗口处理程序,但我认为这不是最好的方法,此外,它也有一些限制。

我公开了我认为可能与您的问题相匹配的方式:

  • 共享文件:非常简单,只需要注意编码即可。
  • 内存区域:可以在 dll 中使用内存区域进行数据交换,这是一个真正的“静态”上下文
  • Socket:Maybe 是最灵活的,因为它适用于任何程序/系统。

如果我必须实现类似的东西,我将使用最后一个,但这取决于你。

【讨论】:

  • 感谢您的回答...我花了几个小时来解决这个问题,我选择了套接字并且工作得很好...我不能使用共享文件 cose 主程序(java)每 10 次询问库毫秒和程序来模拟硬件盒每 10 毫秒发送信号以模拟更多/更少的“正常电缆”通信无论如何谢谢你的回答因为它让我确定我做对了:)
猜你喜欢
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
相关资源
最近更新 更多