A. C#中怎麼將dll靜態編譯到exe中
在項目欄裡面有個引用文件夾,右鍵點擊文件夾,添加應用,在提示欄里上方標簽點擊
瀏覽
,選擇dll路徑即可,前提是dll沒有加殼。
這只是項目里引用,你如果要在代碼里用dll的方法(函數),先用對象瀏覽器(工具欄里有)查看dll里的類,當然,如果是你自己編的dll就不用了,再在代碼源文件頭加using
XXX(類別名稱);即可。
提醒下~你編譯出的exe如果要移動或打成安裝包,dll要一起。
B. 怎樣可以將DLL編譯到EXE文件里
添加一個自定義資源類型,指向該文件即可。運行時可以利用資源管理函數把資源存到Windows的臨時目錄,文件名稱越怪越好,不需要和原來的文件名一樣。利用loadLibrary和GetProcAddress,調用函數,最後刪除臨時文件,毀屍滅跡。如果你熟悉DLL動態延遲載入,那將是再好不過。 相關文章可以參考Windows Deveoper Magazine中 2002.7 這篇文章講述了如何把DLL打包到一個EXE文件中,如何把它存到一個臨時的不為人所知目錄,如何動態延遲載入這個動態連接庫(注意動態延遲載入用的是是靜態連接,不需要調用loadLibrary和GetProcAddress函數,但在編譯時需要指定編譯選項你可以參考《Windows核心編程》參考關於DLL延遲載入的描述)。程序函數調用完畢程序退出前可以神不知鬼不覺地把文件刪除。做到踏雪無痕。