簡體   English   中英

使用 exe 或 DLL 從另一個程序調用程序

[英]Using exe or DLL for calling program from another program

我有一個大程序 A,它在某些時候調用我的(大)程序 B。程序 B 在程序 A 中只調用一次。目前程序 B 是一個可執行程序(B.exe - 編譯的 C++ 代碼)。

有人建議使用程序 B 的 DLL 而不是使用可執行文件。

  • 使用 DLL 是否有任何優勢(如安全性、尺寸等)
  • 從我的源代碼創建 DLL 是否容易(我使用 Qt 創建者)

使用 dll 是否有任何優勢(如安全性、尺寸等)

不。事實上,如果您正在查看安全性、大小等問題,使用 DLL 會使事情變得更糟。 當您加載 DLL 時,一切都發生在加載過程的地址空間內。 所以 DLL 內部的任何 bug 都會直接影響程序的 rest。 DLL 代碼中的崩潰,將使整個程序崩潰。

從我的源代碼創建 dll 是否容易(我使用 Qt 創建者)

是的。 但對我來說,您的特定用例似乎幾乎沒有任何好處。 事實上,對於很少使用的代碼路徑,我強烈建議將其放入單獨的進程中(即鏈接到 a.EXE 中)。

順便說一句: .dll.exe完全相同。 您可以像加載 DLL 一樣加載.exe 給它一個DllMain ,你可以使用它! 當然,使用LoadLibrary加載 EXE 不會使其在單獨的進程中運行,而是將所有錯誤導入到您的主程序中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM