Ⅰ 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
填入路径为值)