Visual studio 问题汇总
1.error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”
打开项目工程—-> 属性 —> c/c++ –> 语言 –> 符合模式 修改成否即可
虽然暂时不知道原因是什么……
2.解决“不是有效的win32应用程序”问题
做任务时遇到需要将项目扩展到windowsXP系统上,但是当程序运行在XP系统上时报错”不是有效的win32应用程序“
查询之后发现应该在左侧树列表里选择 配置属性->常规,然后在右侧列表的“平台工具集”,在这里修改包含XP的 平台工具集
更改项目工具集
- 在 Visual Studio 中,在解决方案资源管理器中,打开您的项目(不适用于您的解决方案)的快捷菜单,然后选择属性可打开项目属性页对话框。
- 在“属性页”对话框中,打开“配置”下拉列表,然后选择“所有配置”。
- 在对话框的左窗格中,展开“配置属性”,然后选择“常规”。
- 在右窗格中,选择“平台工具集”,然后从下拉列表中选择需要的工具集。 例如,如果您已安装了Visual Studio 2010工具集,请选择 Visual Studio 2010 (v100) 并用于您的项目。
- 选择“确定”按钮。
3.单独安装平台工具集
打开Visual Studio installer,就可以像开始安装时那样,勾选相关工具集。
4.关于各种无法解析的外部符号问题的相应解决方案
关于各种无法解析的外部符号问题的相应解决方案
考虑可能的原因:
[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.
[1]只写了类声明,但还没有写实现类,造成调用时无法解析
[2]声明和定义没有统一,造成链接不一致,无法解析
[3]没有在项目属性页的链接器的命令行选项加入相应的类包。
[4]没有在c++包含目录和库目录加入相应的类包路径
[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件
[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。
[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库
[9]error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW 工程属性,C/C++,代码生成,运行时库选择MDd,
5.项目导入一个exe.manifest文件
VS 设置编译后的程序可以以管理员身份运行
6.Runtime library的选择
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug
7.项目编码
我们在VS中新建一个项目,然后右击项目,弹出菜单选择属性。进入到如下界面,在配置属性–>常规–>字符集,见下图,我们可以选择两种字符集。
- 使用 UNICODE 字符集
- 使用多字节字符集 (即 ANSI字符集 )
8.MFC的使用
我们如果要发行release版本的exe文件,则需要将exe静态链接,因此就需要在”MFC的使用“选择”在静态库中使用DLL“。否则生成的exe文件无法连接到相应的函数库。