VS2010常见知识点

VS2010常见知识点1 这四种运行库在 VS 的项目属性 C C 代码生成 运行库 在调试模式下 使用调试运行库 多线程调试 MTd 多线程调试 DLL MDd 在发布模式下 使用发布运行库 多线程 MT 多线程 DLL

大家好,欢迎来到IT知识分享网。

1、这四种运行库在VS的项目属性-》C/C++-》代码生成-》运行库:

在调试模式下,使用调试运行库:多线程调试(/MTd)、多线程调试DLL(/MDd)

在发布模式下,使用发布运行库:多线程(/MT)、多线程DLL(/MD)

静态链接:多线程(/MT)、多线程调试(/MTd)

动态链接:多线程DLL(/MD)、多线程调试DLL(/MDd)。

MT和MD的区别:
链接的运行时库不同。对于多线程MT的程序来说,其连接的是libcmt.lib,该文件属于C语言运行时库,整个lib都会连接到PE文件当中。而多线程MD的程序链接的却是类似msvcpXXX.dll,该文件属于微软运行时库.也就是说如果是多线程MD编译出来的文件运行时都会加载相应版本的运行时库,当如果找不到运行时库就会报错而无法运行,同时如果运行时库不匹配也会出现各种意料之外的崩溃或者程序根本跑不起来等情况。
编译出来的PE文件大小区别。此时如果两者作为对比就会很明显看到多线程MT编译出来的文件体积要比多线程MD编译出来的大,因为MT是把对应的运行时库直接放到编译出来的PE文件当中,而MD却是运行的时候从第三方dll中获取运行时库,自己本身却不包含。同时另外的区别也很明显,多线程MT编译出来的文件运行时不需要加载第三方dll所以运行效率要比多线程MD稍微高一点点,当然作为用户是完全感觉不到的。所以说如果打开一个程序目录,发现里面有类似msvcrtXX.dll,那么这个程序几乎可以肯定是用多线程MD方式编译的。
2、lib和dll的区别


1)使用lib需注意两个文件:

•.h头文件,包含lib中说明输出的类或符号原型或数据结构。应用程序调用lib时,需要将该文件包含入应用程序的源文件中。
•.LIB文件。

使用dll需注意三个文件:

•.h头文件,包含dll中说明输出的类或符号原型或数据结构的.h文件。应用程序调用dll时,需要将该文件包含入应用程序的源文件中。
•.LIB文件,是dll在编译、链接成功之后生成的文件,作用是当其他应用程序调用dll时,需要将该文件引入应用程序,否则产生错误(如果不想用lib文件或者没有lib文件,可以用WIN32 API函数LoadLibrary、GetProcAddress装载)。lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容。LIB包含被DLL导出的函数名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到DLL文件。lib是编译时用到的,dll是运行时用到的。如果要完成源代码的编译,只需要lib;如果要使动态链接的程序运行起来,只需要dll。

•dll文件,真正的可执行文件,开发成功后的应用程序在发布时,只需要有.exe文件和.dll文件,并不需要.lib文件和.h头文件。

2)生成lib文件

右键点击工程,并选择工程属性,出现下图,选择静态链接库即可。

VS2010常见知识点

build solution即可产生lib文件,在Debug中只生成.lib文件。

生成dll文件

  生成dll文件的过程与上面的过程是一样的,只是在选择Dynamic Library(.dll)即可。在Debug中会生成一个.lib和.dll两种文件。

VS2010常见知识点

3).两种文件的使用

  在使用时,静态链接库只要把.h和.lib文件加入到工程文件夹中即可。而动态链接库要把.h、.lib和.dll文件加入到工程中。要调用.dll库文件中的函数,首先要在c/c++附加包含目录dll对应的.h文件,然后在链接器中包含响应的.lib文件,最后要把.dll文件放在.exe相同目录下。

3、Debug和Release的区别

  Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息 

  Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。(调试信息可在单独的PDB文件中生成)。 Release模式下生成一个文件.exe或.dll文件

4、sln是解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息

sdf (SQL Server Compact Edition Database File)文件,是工程的信息保存成了数据库文件,如果你没有参加大型的团队项目,不涉及到高深的调试过程,这个文件对于你来说没什么用了,可以放心的删除,如果你后来又需要这个文件了,简单,打开工程里的.sln文件重新编译链接就ok了

vcxproj文件:工程文件,其中描述了工程的各项属性,修改该文件后再重新build时vs会重新build工程

vcxproj.filter文件:可理解为视图文件,定义了工程在VS中打开后的目录结构,修改该文件后重新build时vs不会重新build工程。

5、第一次使用VS2010需要执行以下步骤:项目->属性->清单工具->输入和输出->嵌入清单->否。选择”否”意味着项目管理团队可以选择将工作清单单独管理,以提升灵活性、简化更新,并根据需要进行更精确的数据管理和访问控制。

6、新建项目:文件-》新建项目-》win32控制台应用程序-》空项目。

7、转移或者上传vs工程时要删除临时文件,包括:.sdf 文件、suo 文件、vc.db 文件和已有的debug和release目录。

8、重新生成解决方案顾名思义就是重新编译每个文件,这样速度要慢些,但可靠度高一些。而生成解决方案则在上次编译的基础上编译那些修改过了的文件,而没有修改的文件不编译。

9、F5:调试状态下运行。 Ctrl+F5:直接运行,不能调试。

10、VS2010中直接项目右键—属性—连接器—清单文件—uac执行级别 选择requireAdministrator 重新编译,这样程序直接运行就拥有管理员权限了。

11、VS恢复默认设置:工具 → 导入和导出设置 → 重置所有设置 → 下一步 → 选择“是否保存当前设置”,下一步 → 选择“要重置的开发语言(如,Visual C# 开发设置)” → 完成。

12、字体设置:

首先我们打开VS2010,然后依次选择工具,选项,打开选项配置,切换到字体和颜色子配置,然后选择Consolas字体。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138182.html

(0)
上一篇 2025-06-14 19:33
下一篇 2025-06-14 20:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信