當前位置:首頁 » 編程軟體 » c編譯成dll文件

c編譯成dll文件

發布時間: 2023-01-31 11:26:30

❶ 怎麼把c語言程序打包成DLL文件

dll製作步驟: 1.編寫dll函數實現源代碼hello.c #include int say_hello(char* name) { printf( "hello %s\n ", name); return 1; } 2.編寫dll函數輸出定義文件hello.def. LIBRARY hello EXPORTS say_hello @1 3.編譯dll源碼,生成dll,lib文件. 3....

❷ 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:<字元串> 此模塊所屬程序集的名稱

❸ C++如何編譯出DLL文件

如果使用的是VS,可以進行如下操作:
1.
打開VS,
文件-新建-新建項目-其他語言-Visual
C++
- Win32
控制台應用程序。
2.
單擊確定後,彈出對話框,按照對話框「下一步」提示進行操作。
3.
將要編譯的C文件拷貝到CreateDLL項目中,.h文件就放到頭文件夾的目錄下,.c文件放到源文件目錄下,注意後綴名為.c的文件都要改成.cpp,否則編譯會出錯。
注意:申明函數時必須參照上圖紅框標示出來的規則,在Function.cpp文件中必須要引入對應的#include
CreateDLL.h。
4.
選中所有需要編譯成dll的cpp文件,右鍵-屬性-預編譯頭-不使用預編譯頭,然後選擇
「生成」即可,這樣在項目的Debug文件夾下面便可找到CreateDLL.dll文件

❹ C語言程序怎麼編譯成dll文件供其他語言調用

C程序編譯成dll文件只不過是在要公開的介面函數聲明前面加上幾個特定的修飾符而已。
下面是個例子,用dev-cpp建了個dll的默認文檔
/*dll.h文件*/
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

DLLIMPORT void HelloWorld (void);

#endif /* _DLL_H_ */
/*dllmain.c文件*/
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
DLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!/n", "Hi", MB_ICONINFORMATION);
}

BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}

具體請參考jilei08124的CSDN博客

❺ 用C語言編寫DLL

一.動態鏈接庫(dll)結構
——dll中定義有兩種函數:導出函數(export
function)和內部函數
(internal
function),導出函數可以被其他模塊調用,內部函數只能在dll內部使用。我們在用c++定製dll文件時,需要編寫的就是包含導出函數表的模塊定義文件(.def)和實現導出函數功能的c++文件。下面以sample.dll為例介紹def文件和實現文件的結構:
——1.模塊定義文件(.def)是由一個或者多個用於描述dll屬性的模塊語
句組成的文本文件,每個.def文件至少必須包含以下模塊定義語句:
第一個語句必須是library語句,指出dll的名字。
exports語句列出被導出函數的名字。
可以使用description語句描述dll的用途(此句可選)。
";"對一行進行注釋(可選)
——2.實現文件(.cpp文件為例)
——實現入口表函數的.cpp文件中,包含dll入口點處理的api函數和導出
函數的代碼。

❻ 【求助】如何把C編譯成dll

不過你可以寫成c++的,然後弄成dll啊
在VC下編譯器里很方便的木葉清風(站內聯系TA)你看看msdn裡面關於動態鏈接庫的編寫部分,然後照著寫一個就行了。可以用__declspec( dllexport )或者寫.def文件導出函數或者變數,dllmain函數可要也可不要(不要的時候在屬性裡面指定生產dll)magic7004(站內聯系TA)只要告訴編譯器你要生成DLL就行了,如果你的編譯器沒有這個功能,那麼換個編譯器就OK了。chengrg(站內聯系TA)做成了!用c++文件如下:#include extern "C"{
/*---------------- 計算理想氣體焓值 --------------------*/

❼ 如何用VC編寫dll文件

VC編寫dll文件

1、VC++->New->Project->Win32 Dynamic_Link Library;

2、選擇創建一個空工程;

首先DLL需要一個頭文件,所以新建一個CC++ Header File

這個頭文件中必須包含想要輸出的變數和函數,頭文件必須定義用於輸出的任何符號和數據結構。

例如 :

證明調用動態鏈接庫里的 Add函數成功。

❽ c語言寫的程序怎麼樣生成.dll文件

dll製作步驟:
1.編寫dll函數實現源代碼hello.c

#include

int say_hello(char* name)
{
printf( "hello %s\n ", name);
return 1;
}

2.編寫dll函數輸出定義文件hello.def.

LIBRARY hello
EXPORTS
say_hello @1

3.編譯dll源碼,生成dll,lib文件.

3.1 新建命令行窗口
3.2 設置PATH ?? INCLUDE ?? LIB 3個環境變數.

SET PATH=K:\vcnet\vc7\bin;%PATH%
SET INCLUDE=K:\vcnet\vc7\include;%INCLUDE%
SET LIB=K:\vsnet\Vc7\lib;%LIB%

3.3 編譯hello.c

cd K:\Source\dllsample (hello.c和hello.def所在目錄)
cl /c hello.c

3.4 鏈接hello.obj,生成hello.dll,hello.lib兩個文件.

link /def:hello.def /dll hello.obj

4.測試dll函數.

4.1 編寫測試代碼 test.c

extern int say_hello(char* name);
int main(int argc,char** argv)
{
say_hello( "robbie ");
return 0;
}

4.2 編譯測試代碼test.c

cl /c test.c

4.3 鏈接test.obj和 hello.lib,生成可執行文件test.exe

link test.obj hello.lib

4.4 運行test.exe,屏幕輸出:

hello robbie

至此,一個dll構造完畢.

❾ dll文件如何用C語言生成

在編譯的時候,選擇DLL選項就可以生成了.當然你的程序,要符合DLL的規范,比如要引出至少一個函數什麼的.把main換成dllmain

熱點內容
烏班圖伺服器查詢ip進不去 發布:2024-04-24 14:54:04 瀏覽:939
訪問亞馬遜卡 發布:2024-04-24 14:53:59 瀏覽:104
oraclesql執行存儲過程 發布:2024-04-24 14:28:07 瀏覽:455
vos伺服器是什麼 發布:2024-04-24 14:17:50 瀏覽:826
冰菓資料庫 發布:2024-04-24 14:17:36 瀏覽:83
鴻蒙系統安卓系統蘋果系統哪個好 發布:2024-04-24 14:04:43 瀏覽:745
網上郵政儲蓄銀行如何修改密碼 發布:2024-04-24 13:57:57 瀏覽:28
sqlserverexistsin 發布:2024-04-24 13:23:13 瀏覽:321
壓縮包暴力破解器 發布:2024-04-24 13:21:46 瀏覽:280
微信對接配置要注意哪些 發布:2024-04-24 13:12:27 瀏覽:657