2015-04-01 72 views
-2

如果我有一個項目,主要輸出是一個DLL,有沒有辦法說,將其轉換爲EXE運行?我希望我的應用程序用戶只需運行該文件,而不是使用dll。我一直想知道這一點。 對不起,如果這是一個愚蠢的問題,仍然學習C++ :) 任何幫助表示讚賞。DLL要EXE轉換? [C++]

+2

你不能將一個DLL「轉換」爲EXE。 DLL文件沒有入口點(即'main()'),因爲它們不能運行,因爲它們只是一組函數。 – 2015-04-01 02:15:13

+0

您可能可以使用'Run32Dll'作爲exe包裝器,但您需要提供具有正確簽名的導出函數:http://stackoverflow.com/questions/3207365/how-to-use-rundll32-要執行的dll函數 – MSalters 2015-04-01 08:44:00

回答

4

一個解決方案是創建一個EXE項目,它只有一個.cpp文件,只有main函數,並調用main的DLL入口點之一。生成項目,你現在可以運行DLL中的任何東西。

+0

所以基本上你可以參考一個EXE的DLL? – 2015-04-01 02:41:00

+0

@QueenHismanIII,是的,你可以。您必須將與DLL對應的.lib添加到鏈接器使用的庫集。當你運行這個exe文件時,你需要確保DLL和exe文件在同一個目錄中,或者可以從PATH中找到它。 – 2015-04-01 03:00:18

+0

有兩種綁定到DLL的方式;你可以使用一個導入庫(早期綁定),或者你可以使用後期綁定並調用'LoadLibrary','GetProcAddress'等來在運行時按名稱查找函數的地址 – 2015-04-01 03:01:54