Visual studio 问题汇总

1.error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”

打开项目工程—-> 属性 —> c/c++ –> 语言 –> 符合模式 修改成否即可

虽然暂时不知道原因是什么……

2.解决“不是有效的win32应用程序”问题

做任务时遇到需要将项目扩展到windowsXP系统上,但是当程序运行在XP系统上时报错”不是有效的win32应用程序“

查询之后发现应该在左侧树列表里选择 配置属性->常规,然后在右侧列表的“平台工具集”,在这里修改包含XP的 平台工具集

更改项目工具集
  1. 在 Visual Studio 中,在解决方案资源管理器中,打开您的项目(不适用于您的解决方案)的快捷菜单,然后选择属性可打开项目属性页对话框。
  2. “属性页”对话框中,打开“配置”下拉列表,然后选择“所有配置”
  3. 在对话框的左窗格中,展开“配置属性”,然后选择“常规”
  4. 在右窗格中,选择“平台工具集”,然后从下拉列表中选择需要的工具集。 例如,如果您已安装了Visual Studio 2010工具集,请选择 Visual Studio 2010 (v100) 并用于您的项目。
  5. 选择“确定”按钮。
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文件无法连接到相应的函数库。