打开项目工程—-> 属性 —> c/c++ –> 语言 –> 符合模式 修改成否即可
虽然暂时不知道原因是什么……
做任务时遇到需要将项目扩展到windowsXP系统上,但是当程序运行在XP系统上时报错”不是有效的win32应用程序“
查询之后发现应该在左侧树列表里选择 配置属性->常规,然后在右侧列表的“平台工具集”,在这里修改包含XP的 平台工具集
打开Visual Studio installer,就可以像开始安装时那样,勾选相关工具集。
关于各种无法解析的外部符号问题的相应解决方案
考虑可能的原因:
[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,
VS 设置编译后的程序可以以管理员身份运行
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug
我们在VS中新建一个项目,然后右击项目,弹出菜单选择属性。进入到如下界面,在配置属性–>常规–>字符集,见下图,我们可以选择两种字符集。
使用多字节字符集 (即 ANSI字符集 )
我们如果要发行release版本的exe文件,则需要将exe静态链接,因此就需要在”MFC的使用“选择”在静态库中使用DLL“。否则生成的exe文件无法连接到相应的函数库。