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

c文件編譯成dll

發布時間: 2023-08-14 22:59:03

『壹』 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博客

『叄』 在MATLAB中用C語言編寫S函數時,怎麼生成動態鏈接庫(DLL)文件

在編寫好S函數的實現代碼*.c文件後,還需要在Matlab的命令輸出窗口中進行命令行輸入,完成對源代碼的編譯,這樣才能被S函數模塊所調用。在命令窗口中輸入命令:
「mex

-g

RandomTimeDelay.c」
M文件S-函數在MATLAB環境下可以通過解釋器直接執行,而C文件或其它語言編寫的C-函數,則需要先編譯成可以在MATLAB內運行的二進制代碼:動態連接庫或靜態連接庫,然後才可以使用,這些經過編譯的二進制文件就稱作MEX文件。用MEX命令來對*.c文件進行編譯,然後會在相應的目錄下生成對應的*.mexw32文件。然後就可以在simulink模塊中引用這個s函數了。

『肆』 【求助】如何把C編譯成dll

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

『伍』 c怎麼生成dll文件

用 vc 6.0 下的cl.exe 和 link.exe工具,請讀下文:
聲明:下面這篇文章不是我寫的,源自:一個叫,有容乃大 的博客

如何手工編寫動態鏈接庫(windows dll)

1.本例介紹在命令行(Console)環境下製作dll的方法
2.讀者動手前,請確保在windows中安裝有編譯、鏈接工具和必要的函數庫文件。
3.本例使用C語言實現.
4.本例中使用路徑均為我機器上的絕對路徑,讀者需根據實際情況調整。

工具要求:

Microsoft的編譯器cl.exe
MIcrosoft鏈接器link.exe

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 �0�7 INCLUDE �0�7 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構造完畢.

下面是我自己的爛猜高一點補充:
如果要在c++下飢尺,或者win32 mfc下使用標准c寫的dll,必須把上面的聲明
extern int say_hello(char* name);改成:extern "C " int say_hello(char* name);

『陸』 怎麼把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....

熱點內容
快速指數演算法 發布:2025-02-04 20:20:40 瀏覽:297
python在類中定義函數調用函數 發布:2025-02-04 20:14:47 瀏覽:594
安卓手機的壁紙是哪個 發布:2025-02-04 20:14:44 瀏覽:198
java發展前景 發布:2025-02-04 20:10:19 瀏覽:76
mac登陸密碼哪裡設置 發布:2025-02-04 19:50:20 瀏覽:525
手游腳本封號 發布:2025-02-04 19:42:12 瀏覽:435
玩單機游戲要哪些配置的電腦 發布:2025-02-04 19:17:41 瀏覽:1003
c語言編程圖書 發布:2025-02-04 19:01:52 瀏覽:898
在哪裡開啟密碼顯示 發布:2025-02-04 18:38:30 瀏覽:791
怎麼查詢qq密碼 發布:2025-02-04 18:20:10 瀏覽:515