㈠ 《windows核心编程》C/C++运行库的 DLL版本 和 静态版本 的区别
最简单的回答:因为C++最适合于操作系统的核心功能的编写。
------------以下是一些相关常识,仅供参考---------
1、编程语言从贴近机器去分,一般分高级编程语言和低级编程语言。
2、低级编程语言其实很少的,基本上就是汇编的代名词,当然还有更低级的,那就是机器码直接编程了。
3、机器码编程基本上是不靠谱的,没人能把一群的数字记在脑里并进行五花八门的组合。
4、汇编是最贴近机器代码的,它的一个指令基本上就对应着机器码的一个指令,所以,从理论上说,它能发挥出机器的最高性能、最多功能。但是,这只是理论上,事实上,如果纯它用,将完全不能发挥机器的最高性能因为当前的计算机技术下,没有任何一个人,没有任何一个团队能用汇编去完成一个稍微复杂一点点儿的功能。在当前,汇编仅应用于特定接口工作的开发,以及一些高级语言不能或不便完成的代码编写。
5、所以,在近现代的计算机技术中,编程工作主要还是要由高级编程语言去完成,编写完后,由编译器进行转译成计算机能够执行的机器码,或机算机能依托某种软件应用环境边解释成机器码边执行的中间码。当然,也存在一些根本就不转译,直接在环境中,边解释边执行(比如JAVA就是典型的)。
6、C++这个语系对内存地址可以进行直接的操作,包括读、写,这种动作类似于直接向机器发出指令。所以,C++在高级语言中相对来说是比较贴近机器的。而且C++的几个编程环境编写出的程序是真正译成机器码的,可以不依托“运行环境”让计算机依要求动作。当然,有这个特点的不只是C++,还有别的语系,比如使用Pasic系的Delphi编程环境。不过,C++的更传统用户群更多,而且简洁自由(有时自由过头,故障排查相对难),得到了更多专业人员的喜爱。
㈡ 如何查看一个dll是用什么编译器编译的
dll文件是系统的动态链接库文件,可以用一些十六位春文本编辑器打开,如UltraEdit
修改DLL文件的方法
1、下载DLL文件修改工具EXESCOPE6.0-6.3或6.4工具
2、获取Browselc.dll、Shdoclc.dll、Shell32.dll和Cryptui.dll这几个链接文件。在找这几个文件时,最好将其他机器的硬盘,挂接在本机中,然后用本机的操作系统启动并复制这几个文件。
3、在修改DLL文件的时候,打开该键值,在右面的对话框中将所要修改的键值禁用即可,不要删除,以备日后恢复
㈢ 为什么一种语言编写的dll文件,可以被不同编程语言使用
dll是微软Windows平台用的动态链接库,提供了对接端口,编程软件也是调用windows平台上的,dll文件是编写好的程序通过编译后的文件。例如,用语言开发的通过windows下编译会成为exe文件,都可以使用一样的。
㈣ 如何编写dll的64位版
在编译配置里添加一个x64的就可以了。
从菜单【编译(Build)】->【配置管理(ConfigurationManager)】
在弹出的窗口里的右上角有个【可用工程平台(Activesolutionplatform)】下拉框,打开可以看到有个【新建】菜单,点击打开【新建工程平台】的对话框,选择平台为x64。
㈤ c#不同版本编译器生成的dll类库引用的时候一样吗
亲,高版本使用低版本的是一样的,但是低版本使用高版本就有问题了,因为有些东西低版本里没有。你的在vs2008下的dll,在vs2008和2010引用是一样的,但是在vs2010下的dll在vs2008下引用就可能有问题了
㈥ DLL文件编译,高手请指教。
DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。
DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”。在Windows操作系统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。而有些DLL文件可以被许多程序共用。因此, 程序设计人员可以利用DLL文件, 使程序不至于太过巨大。但是当安装的程序越来越多, DLL文件也就会越来越多, 如果当你删除程序的时候, 没有用的DLL文件没有被删除的话, 久而久之就造成系统的负担了。
DLL是动态连接库。使用动态连接库的一些好处是:
1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。
2.在钩子程序过滤系统消息时必须使用动态连接库。
3.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。
4.为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态连接库实现的。
VC++、C++ Builder、Delphi都可以编写DLL文件。Visual Basic 5.0以上版本也可以编写一种特殊的DLL,即ActiveX DLL。
DLL不是独立运行的程序,它是某个程序的一个部分,它只能由所属的程序调用。用户不能,也不需要打开它。
㈦ dll改动后使用它的程序需要重新编译吗
如果搂住的类方法是虚函数的话,那就一切OK,因为虚函数是在执行期(runtime)才查表确定函数地址的,如果不是那就只能看运气咯。
呵呵,其实最简单的办法就是做出来测试一下只要没有问题不就一切OK了!
㈧ 不同版本的VC编译出来的DLL可以互相调用吗
要看你有没有引用到特别的接口,比如Win7里的新增的API接口,放到dll里,那么放到XP下肯定不可以运行。如果是其他普通的功能就可以互相调用。
比如很多年前开发的软件或游戏也依然可以运行在WIN7上,就是这个道理。
软件开发都是尽可能向前兼容的。
㈨ 如何让编译出的新版dll,可以直接替换旧版本
如果使用的是VS,可以进行如下操作:
打开VS, 文件-新建-新建项目-其他语言-VisualC++-Win32 控制台应用程序。
单击确定后,弹出对话框,按照对话框“下一步”提示进行操作。
将要编译的C文件拷贝到CreateDLL项目中,.h文件就放到头文件夹的目录下,.c文件放到源文件目录下,注意后缀名为.c的文件都要改成.cpp,否则编译会出错。
注意:申明函数时必须参照上图红框标示出来的规则,在Function.cpp文件中必须要引入对应的#include CreateDLL.h。
选中所有需要编译成dll的cpp文件,右键-属性-预编译头-不使用预编译头,然后选择 “生成”即可,这样在项目的Debug文件夹下面便可找到CreateDLL.dll文件
㈩ dll用什么编程语言开发
c,c++,c# 都可以编译生成dll