當前位置:首頁 » 編程軟體 » exe編譯成dll

exe編譯成dll

發布時間: 2022-04-30 16:52:47

1. 如何編譯生成dll

使用VC下的cl和link手工創建dll並實現函數導入

1、創建dll頭文件:
/*
* dllmain.h
*/
#ifndef _DLLMAIN_H
#define _DLLMAIN_H

int getNumber();

#endif

2、創建dll源文件:
/*
* dllmain.c
*/
#include "dllmain.h"

int getNumber()
{
return 10;
}

3、 創建def文件:
; export.def
LIBRARY MY_DLLMAIN ; MY_DLLMAIN 將成為生成的dll的名稱
EXPORTS
getNumber @1 ; 這個名稱即為函數的實際導出名稱 @1為函數的導出編號

4、生成dll文件:
cl dllmain.c /c
link /def:export.def /dll dllmain.obj

這時,工程中已經包含了 dllmain.h dllmain.c export.def dllmain.obj dllmain.lib dllmain.exp MY_DLLMAIN.dll 其中,後4個文件是編譯鏈接過程中生成的文件

5、創建dlltest.c:
/*
* dlltest.c
*/
#include <stdio.h>
#include "dllmain.h" //dll庫的頭文件

#pragma comment(lib,"dllmain.lib") //dllmain.lib即是上一步生成的文件

int main()
{
printf("%dn",getNumber());
}

6、編譯、鏈接dlltest.c
cl dlltest.c /c
link dlltest.obj

注意:這里dllmain.lib和dllmain.h應該和dlltest.c在同一個目錄中。此步的結果將生成 dlltest.exe

7、運行:
dlltest

這時,系統將載入my_dllmain.dll這個動態鏈接庫,將調用其中的getNubmer函數。

2. 如何將MFC生成的exe轉換為DLL

新建一個DLL工程,比如MyDLL,將原工程中的*.h 和 *.cpp文件復制到新建的工程目錄下,並添加到工程中。同樣的方式導入res文件,不用再去建一遍對話框。我的做法是,新建的工程和原工程同名,然後僅在MyDLL.h中添加相應的頭文件,最關鍵的一步是添加dll函數介面:
在MyDLL.h中添加
extern "C" __declspec(dllexport) void ShowDentalViewDlg(void);// "C"很必要,多個教程中強調,不加的話,由於C++編譯器為函數添加類型名,可能導致在其他程序中調用無法找到對應的函數
然後在MyDLL.cpp中實現它:
extern "C" __declspec(dllexport) void ShowDentalViewDlg(void)
{
CDentalViewDlg dlg;
dlg.DoModal();
}

3. 如何將COM組件(*.dll)或exe,通過命令行重新編譯為新的dll文件

採用
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
方式建立你COM組件類,重新編譯即可。

4. 在VB中如何將exe工程文件轉換成dll工程文件

不是個轉換的DLL文件指的是動態連接庫,你在新建程序的時候就可以建立一個動態連接庫工程,在這個裡面一般是放一些資源或則函數之內的東西,供程序調用,也就是說如果你的程序要更新的時候只需要更新相應的DLL文件就可以了,這樣很方便,但是開發DLL最好還是用VC++,這個簡單多了

5. DELPHI EXE怎麼轉成DLL,謝謝!

你打開你的工程文件,直接把那個「program」關鍵字改為"Library"然後編譯即可
如果你要調用哪個過程函數,就要寫導出表了
附一個簡單的Dll工程:
Library Test;

uses
Windows;

function TestFunc(p:pointer):Pointer;stdcall;//需要調用的功能函數
begin
Result:=p;
end;

//導出表
Exports
TestFunc;

begin
end.

6. 有沒有將exe文件編譯成dll文件的工具

不用工具.
打開"我的電腦",在窗口的工具欄上面"工具"-->"文件夾選項"-->"查看"-->
找到"隱藏已知文件類型的擴展名",把前面的"囗"設置為空白,也就是不選,-->確定.
然後,就在你想要改的那個EXE文件重名名,後面加上」.DLL」就行啦.
但此法只是冶標不冶本.

7. exe文件怎麼改成dll文件

兩個結構是完全不一樣的,需要拿到源代碼,然後做改動重新編譯才行的。

8. 如何filetool.exe 來生成dll文件

VC++6不能添加文件(vc與visio沖突)問題解決辦法1、到微軟官方下載 filetool.exe( http://support.microsoft.com/kb/241396/en-us);2、運行 filetool.exe 釋放出一個c++工程文件;3、編譯該工程生成 FileTool.dll;4、VisualC++, 中單擊 「工具」 菜單中 「定製」 ;5、在 「定製」 對話框中, 單擊 「附加項和宏文件」 選項卡。6、單擊 瀏覽 按鈕並定位步驟 2 中生成 FileTool.dll 文件。7、單擊 確定 以保存設置。8、這時會出現一個新的工具條,有兩個按鈕用於添加文件,原來的添加文件功能依舊不能用。9、如果想刪除原來的菜單和快捷鍵,請參看 http://support.microsoft.com/kb/241396/en-us

9. 如何把VS的exe工程轉成dll工程

解決辦法:
1、下載缺少的dll文件,復制到c:\windows\system32文件夾下;
2、按win+r,輸入regsvr32 /s 該文件文件名XX.DLL,點擊確定;
3、彈出提示信息框,提示注冊成功,點擊確定即可。
4、用騰訊電腦管家電腦診所--搜 缺失dll文件--立即修理

10. c#使用命令行編譯生成dll文件

C#使用csc.exe編譯程序,csc使用/target:library(縮寫: /t:library)參數生成Dll文件。
其它參數如下:
Visual C# 編譯器選項
- 輸出文件 -
/out:<文件> 指定輸出文件名(默認值: 包含主類的文件或第一個文件的基名稱)
/target:exe 生成控制台可執行文件(默認) (縮寫: /t:exe)
/target:winexe 生成 Windows 可執行文件 (縮寫: /t:winexe)
/target:library 生成庫 (縮寫: /t:library)
/target:mole 生成能添加到其他程序集的模塊 (縮寫: /t:mole)
/target:appcontainerexe 生成 Appcontainer 可執行文件 (縮寫: /t:appcontainerexe)
/target:winmdobj 生成 WinMDExp 使用的 Windows 運行時中間文件 (縮寫: /t:winmdobj)
/doc:<文件> 要生成的 XML 文檔文件
/platform:<字元串> 限制可以在其上運行此代碼的平台: x86、Itanium、x64、arm、anycpu32bitpreferred 或 anycpu。默認值為 anycpu。

- 輸入文件 -
/recurse:<通配符> 根據通配符規范,包括當前目錄和子目錄下的所有文件
/reference:<別名>=<文件> 使用給定的別名從指定的程序集文件引用元數據 (縮寫: /r)
/reference:<文件列表> 從指定的程序集文件引用元數據 (縮寫: /r)
/addmole:<文件列表> 將指定的模塊鏈接到此程序集中
/link:<文件列表> 嵌入指定的互操作程序集文件中的元數據 (縮寫: /l)

- 資源 -
/win32res:<文件> 指定 Win32 資源文件(.res)
/win32icon:<文件> 對輸出使用此圖標
/win32manifest:<文件> 指定 Win32 清單文件(.xml)
/nowin32manifest 不包括默認 Win32 清單
/resource:<資源信息> 嵌入指定的資源 (縮寫: /res)
/linkresource:<資源信息> 將指定的資源鏈接到此程序集 (縮寫: /linkres)
其中 resinfo 的格式是 <file>[,<string name>[,public|private]]

- 代碼生成 -
/debug[+|-] 發出調試信息
/debug:{full|pdbonly} 指定調試類型(「full」是默認類型,可以將調試程序附加到正在運行的程序)
/optimize[+|-] 啟用優化 (縮寫: /o)

- 錯誤和警告 -
/warnaserror[+|-] 將所有警告報告為錯誤
/warnaserror[+|-]:<警告列表> 將特定警告報告為錯誤
/warn:<n> 設置警告等級(0-4) (縮寫: /w)
/nowarn:<警告列表> 禁用特定的警告消息

- 語言 -
/checked[+|-] 生成溢出檢查
/unsafe[+|-] 允許「不安全」代碼
/define:<符號列表> 定義條件編譯符號 (縮寫: /d)
/langversion:<字元串> 指定語言版本模式: ISO-1、ISO-2、3、4、5 或 Default

- 安全性 -
/delaysign[+|-] 僅使用強名稱密鑰的公共部分對程序集進行延遲簽名
/keyfile:<文件> 指定強名稱密鑰文件
/keycontainer:<字元串> 指定強名稱密鑰容器
/highentropyva[+|-] 啟用高平均信息量的 ASLR

- 雜項 -
@<文件> 有關更多選項,請閱讀響應文件
/help 顯示此用法信息 (縮寫: /?)
/nologo 取消編譯器版權信息
/noconfig 不要自動包含 CSC.RSP 文件

- 高級 -
/baseaddress:<地址> 要生成的庫的基址
/bugreport:<文件> 創建「Bug 報告」文件
/codepage:<n> 指定打開源文件時要使用的代碼頁
/utf8output 以 UTF-8 編碼格式輸出編譯器消息
/main:<類型> 指定包含入口點的類型(忽略所有其他可能的入口點) (縮寫: /m)
/fullpaths 編譯器生成完全限定路徑
/filealign:<n> 指定用於輸出文件節的對齊方式
/pdb:<文件> 指定調試信息文件名(默認值: 擴展名為 .pdb 的輸出文件名)
/errorendlocation 輸出每個錯誤的結束位置的行和列
/preferreilang 指定首選輸出語言名稱。
/nostdlib[+|-] 不引用標准庫(mscorlib.dll)
/subsystemversion:<字元串> 指定此程序集的子系統版本
/lib:<文件列表> 指定要在其中搜索引用的附加目錄
/errorreport:<字元串> 指定如何處理內部編譯器錯誤: prompt、send、queue 或 none。默認值為 queue。
/appconfig:<文件> 指定一個包含程序集綁定設置的應用程序配置文件
/moleassemblyname:<字元串> 此模塊所屬程序集的名稱

熱點內容
地址存儲器的容量 發布:2025-07-17 23:42:56 瀏覽:166
win7電腦用戶名和密碼在哪裡查詢 發布:2025-07-17 23:39:44 瀏覽:475
安卓手機顏色怎麼變色 發布:2025-07-17 23:26:43 瀏覽:374
java離線安裝 發布:2025-07-17 23:23:31 瀏覽:376
位置伺服器地址是什麼 發布:2025-07-17 23:18:00 瀏覽:840
phpif一行 發布:2025-07-17 23:12:27 瀏覽:729
安裝腳本精靈 發布:2025-07-17 23:11:35 瀏覽:126
我的世界基岩版中國玩家的生存伺服器 發布:2025-07-17 23:06:34 瀏覽:680
顯示linux隱藏文件 發布:2025-07-17 23:00:24 瀏覽:923
三地的演算法 發布:2025-07-17 22:56:09 瀏覽:354