首頁>Program>source

我有一个需要啟動另一个應用程式(B)的應用程式(A).我需要在應用程式之間傳遞資料.我可以想到两種方法.首先是打開一个插座.第二个是通過dll共享資料.

打開插座的方法很簡單.

dll方式我有一些疑問吗? 我可以將插件dll載入到B中。我想建立一个A可以用来將資料傳遞给B的dll。載入dll時,仅載入了dll的一个例項吗? 如果是這樣,是否意味着可以在載入dll的應用程式之間共享資料?

什麼是更好的選擇?

還有其他方法吗?

最新回復
  • 9天前
    1 #

    您不能通過DLL有效地共享資料.其他方式:

      disk files

      pipes

      shared memory

      messages

      RPC

      CORBA

      COM

      etc.

    p

    最簡單的方法(假設您提到DLL,因此假定為windows)可能是使用CreateProcess並打開到子程序的管道,如此處的簡化形式所述:http://msdn.microsoft.com/zh-cn /library/ms682499.aspx

    命名管道可以替代,特別是如果您無法控製所有程序的生命週期. http://msdn.microsoft.com/zh-CN/library/aa365590.aspx

    對於簡單的情况,郵筒可能是一个足够的選擇。

    http://msdn.microsoft.com/zh-cn/library/aa365574.aspx#base.using_a_mailslot_for_ipc

    以下是windows的各種程序間通訊技術的较长列表。 http://msdn.microsoft.com/en-us/library/aa365574.aspx

    對於本地發生的事情,使用套接字似乎有些過分.另外,您必须實施自己的安全機製来防止欺骗攻击,而不是依赖大多數其他IPC方法的整合安全機製。

  • 9天前
    2 #

    探索替代解決方案始终是一件好事,但是我个人 相信使用套接字作為應用程式之間資料的傳輸層不仅是未来的證明,而且也是可擴充套件的.使用套接字將消除您編寫大量特定於操作系統的代碼的需要,這可能使您將来無法將應用程式移植到非windows操作系統。

    我建議使用套接字。

  • 9天前
    3 #

    您可以拥有一个可以监听的共享快取(例如windows服務或隱藏程序)-將資料​​返迴给所有订阅者.

  • 9天前
    4 #

    我在某種程度上同意Juan zamora M的观點,只是提供資料的服務應具有一个API,可以在需要時請求该API,而無需通過侦听器进行更改。

    >

  • node.js:流星中服務器端路由的身份驗證
  • string:在Java中用定界符連線值列表的最優雅方法是什麼?