Ⅰ vs2005,vs2008,vs2010編譯同一個c語言項目生成的dll文件為什麼不一樣大分別是252,380,246KB
優化方式和程度不有
不同的編譯器用的是可能是不同的優化方案(同一個編譯器不同的設置也會產生不同的結果,比如DeBug和Release)
優化方案取決於編譯器開發者的水平.發行編譯器時的主流CPU和編譯器將要運行的系統平台等因素,
比如DOS時代int_max=0xffff,win32時代int_max=0xffffffff,同樣是int變數,所佔用的內存空間就不同
再如同樣一條C語句:x=x+1;
早期的編譯器可能編譯成類似這樣的結果(這里用結果一詞而不用匯編語言,匯編指令,匯編代碼之類的詞是因為匯編=!機器指令)
mov eax,x
add eax,0x00000001
mov x,eax
而優化的編譯器可能會把這條語句編譯成和
x+=1;
同樣的編譯結果:
mov eax,x
inc eax //這條指令的執行速度和佔用內存的空間都要小
mov x,eax
///////////////////////////////////////////////////////////////
類似的情況還有很多,因為這個回答是我一個字一個字打出來的,不是在哪個地方Copy的,指所以就不一一列舉了,總之:
這些小的差別積少成多,就影響了文件的大小!
Ⅱ 如何用VC++用C語言做DLL文件
新建->工程->dll(不要選MFC的那個)->一個簡單的dll工程
看一下人家的,然後好好理解一下 dll是什麼東東,工作原理是什麼,知道一些API函數就可以自己寫了
Ⅲ 怎麼在C#中添加用C語言開發的動態鏈接庫dll文件(vs2010)
在c#類里添加[DllImport("dll名.dll")]即可:
比如我用c開發了一個testdll.dll的dll文件,則我在c#類的構造函數前可以添加[DllImport("testdll.dll")],就把c開發的動態鏈接庫添加進了c#項目里。
Ⅳ c語言怎麼調用dll文件
1、新建DLLTest文件夾,在該文件夾中新建source文件夾。
注意事項:
C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
Ⅳ C語言,怎麼生成dll文件
到cmd下用vc的編譯器cl.exe編譯fixupdemo.c
Ⅵ 怎麼在C#中添加用C語言開發的動態鏈接庫dll文件(vs2010)
總體來說,有兩種調用動態連接庫的方法
(事實上,是有兩種從managed code調用unmanaged code的方法)
一種使用Attribute,即
[DllImport("SomeDll.dll")]
static extern int SomeFunctionInDll(string filename, uint PageNo);
需引用命名空間
using System.Runtime.InteropServices;
另一種方法是採用COM方法,現倒入COM組件的類型庫,(Menu:Project/Add Reference)
然後直接去new對象,調用其方法既可。
需要先注冊
我用的大多都是c++的dll,c的木有試過,估計原理也是這樣子
希望對你有幫助,O(∩_∩)O~
Ⅶ 用C語言編寫DLL
使用微軟的vc或者vs,用c語言編程就是了。創建工程的時候會問你是創建什麼樣的工程,比如控制台程序,mfc程序,動態庫(dll)等。
c和c++只是編程語言,動態庫依賴於操作系統,在哪個平台下就依賴於哪個平台的動態庫生成工具。linux下是so文件,用gcc編譯器就可以生成。
Ⅷ 怎麼用vs將編輯好的c文件生成dll文件
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; public class test { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { S...
Ⅸ 在VC下編寫C語言的dll文件,我想知道在VC下具體的操作過程
。。。
Ⅹ c語言 用vs2010編寫dll 應該建立什麼工程啊如果需要下載工具包的話 去哪下載
不需要下載工具
只要你電腦安裝了framework即可
使用csc工具
命令csc
File.cs
編譯
File.cs
以產生
File.dll
主要要切換到目標的文件路徑
如果csc不可以使用
就把csc添加到環境變數(新建path
填入路徑為值)