dll动态链接库
Visual C#生成DLL文件——預(yù)備知識?
DLL(Dynamic Link Library)文件即動態(tài)鏈接庫文件,是一種可執(zhí)行文件,允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源。多數(shù)情況下帶有dll擴展名(也可以 是.ocx文件:ActiveX控件文件,.cpl文件:控制面板文件,.drv文件:設(shè)備驅(qū)動程序文件等),向運行于Windows操作系統(tǒng)下的程序提 供代碼、數(shù)據(jù)或函數(shù)。
使用DLL的一些好處:
使用較少的資源;
推廣模塊式體系結(jié)構(gòu);
簡化部署和安裝。??????
DLL不是獨立運行的程序,是某個程序的一個部分,只能由所屬的程序調(diào)用,用戶不能也不需要打開它。?
Visual C#生成DLL文件???
VisualC、Delphi或者VB等編程語言來編寫的DLL文件,在編譯完成以后,產(chǎn)生DLL文件已經(jīng)是一個可以直接供計算機使用的二進制文 件。但用Visual C#編譯器生成的受管代碼雖然也是二進制文件,但不是可以直接供計算機使用的原始代碼,實質(zhì)上是一種中間語言(IL)代碼,需要經(jīng)過"下一代窗口服務(wù)"( Next Generation Windows Services,簡寫為NGWS ) runtime的即時編譯器(即JIT)進行編譯。
用Visual C#生成的DLL文件已經(jīng)和以前的DLL文件有了本質(zhì)上的區(qū)別。用Visual C#生成的DLL文件在程序設(shè)計中更多的表現(xiàn)為一種類(Class)或者類庫(Class Library)。?
Visual C#生成DLL文件——制作一個組件
1.首先創(chuàng)建一個新類庫工程文件
File->New->Project->Visual C# Projects->Class Library。填入工程文件名稱,并且選擇文件要存放的目錄。
2.工程文件
將Class1.cs改名自己要創(chuàng)建的文件名:myDll.cs,并填入代碼。
3.生成DLL文件
編譯工程文件:csc /target:library /out:myDll.DLL myDll.cs生成組件myDll.dll,該組件會在工程文件的bin\debug目錄里,文件擴展名是dll。
Visual C#生成DLL文件——測試DLL
1.新建一個控制應(yīng)用程序
File->New->Project->Visual C# Projects->Console Application。通過這個控制應(yīng)用程序來測試我們的組件。
2. 為Namespace添加引用
Project->Add reference,瀏覽到剛才生成的DLL,然后按OK。即將引用加到當(dāng)前的工程文件的類里。
3.調(diào)用myDll命名空間,創(chuàng)建myDll對象,并且調(diào)用它的方法和屬性
(1)使用namespace:using myDll;
(2)創(chuàng)建myDll對象;
(3)調(diào)用方法和屬性。
?
使用csc命令將.cs文件編譯成.dll的過程
很多時候,我們需要將.cs文件單獨編譯成.dll文件, 操作如下:
打開命令窗口->輸入cmd到控制臺->cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
轉(zhuǎn)到vs.net安裝的該目錄下->執(zhí)行csc命令csc /target:library File.cs->在該目錄下產(chǎn)生一個對應(yīng)名字的.dll文件(前提:把.cs文件放到C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322目錄下)
?csc命令的方式很多,請參考以下
譯 File.cs 以產(chǎn)生 File.exe
csc File.cs 編譯 File.cs 以產(chǎn)生 File.dll
csc /target:library File.cs 編譯 File.cs 并創(chuàng)建 My.exe
csc /out:My.exe File.cs 通過使用優(yōu)化和定義 DEBUG 符號,編譯當(dāng)前目錄中所有的 C# 文件。輸出為 File2.exe
?csc /define:DEBUG /optimize /out:File2.exe *.cs 編譯當(dāng)前目錄中所有的 C# 文件,以產(chǎn)生 File2.dll 的調(diào)試版本。不顯示任何徽標(biāo)和警告
?csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs 將當(dāng)前目錄中所有的 C# 文件編譯為 Something.xyz(一個 DLL)
?csc /target:library /out:Something.xyz *.cs 編譯 File.cs 以產(chǎn)生 File.dll
?csc /target:library File.cs這個就是我們使用最多的一個命令,其實可以簡單的寫成csc /t:library File.cs,另外的一個寫法是 csc /out:mycodebehind.dll /t:library mycodebehind.cs,這個可以自己指定輸出的文件名。
csc /out:mycodebehind.dll /t:library mycodebehind.cs mycodebehind2.cs,這個的作用是把兩個cs文件裝到一個.dll文件里
轉(zhuǎn)載于:https://www.cnblogs.com/9421/archive/2010/01/06/1640625.html
總結(jié)
- 上一篇: 牛客假日团队赛5 K金币馅饼 (DP 基
- 下一篇: 爱的十个秘密--2.思想的力量