Visual Studio问题集锦by低调年华,未完待续

合集下载

Visual Studio集成开发环境练习题参考答案

Visual Studio集成开发环境练习题参考答案

Visual Studio集成开发环境练习题参考答案Visual Studio是一款功能强大的集成开发环境(Integrated Development Environment,简称IDE),广泛用于软件开发和编程练习。

它提供了丰富的工具和功能,可以帮助开发者提高效率和代码质量。

在这篇文章中,我们将为您提供一些Visual Studio练习题的参考答案。

练习题一:创建一个控制台应用程序1. 打开Visual Studio,并选择“新建项目”。

2. 在模板列表中选择“Visual C#” -> “控制台应用(.NET Core)”。

3. 输入项目名称,并选择保存路径。

4. 单击“确定”按钮创建项目。

5. 在解决方案资源管理器中,双击打开Program.cs文件。

6. 在Main方法中输入以下代码:```csharpusing System;namespace ConsoleApp{class Program{static void Main(string[] args){Console.WriteLine("Hello World!");Console.ReadKey();}}}```7. 运行代码,可以看到控制台输出了"Hello World!"。

练习题二:添加新的源代码文件1. 在解决方案资源管理器中,右键点击项目名称,选择“添加” -> “新建项”。

2. 在模板列表中选择“Visual C#” -> “类”。

3. 输入文件名称,并选择保存路径。

4. 单击“添加”按钮创建新的源代码文件。

5. 在新的源代码文件中输入代码逻辑。

练习题三:调试代码1. 在代码中添加断点,可以通过单击代码行左侧的空白区域或使用F9键实现。

2. 单击“调试”菜单,选择“开始调试”或使用F5键启动调试。

3. 当代码执行到设置的断点时,程序将暂停执行,进入调试状态。

VisualStudio面试辅导试题汇编.docx

VisualStudio面试辅导试题汇编.docx

Visual Studio面试绷导试题汇编一、.Net概述、编程基础1 > 什么是.Net2、你学过哪些.Net技术3、C#中的数据类型体系结构4、C#中各种基本类型的默认值是什么5、在C#中string和String有什么联系及区别6、基本类型转换7、在C#中的j = ++i; (j =・・i;)和j = i++; (j = i-;)有什么区别++或一:如果只对一个变量操作,i++(i—)和++i(—i)没有区别,如果与其他操作符一起使用,前缀:先4-4-/-后操作其他运算符;如果后缀:先运算再++/_int i = 100; int j = ++i;i9101 ;j-^101int i = 100; int j = i++; i->101 ;j->100& 在C#中的&和&& (|和||)有什么区别&&是短路“与”,||是短路“或”如果ExpressA && ExpressB:当ExpressA 是False 时,ExpressB 不运算;如果ExpressA 11 ExpressB:当ExpressA 是True 时,ExpressB 不运算; &或|,不论ExpressA是什么,都会计算ExpressB(如果短路操作符后面的表达式带4-4-/-)9、int i = 5; int j = 2; i/j = ?2运算符运算的结果的数据类型是参与运算的所有变量类型中最大的类型10、C#屮逻辑操作符和位逻辑操作符都有哪些逻辑操作符操作的是布尔型变量,返回布尔型;位逻辑操作符操作的是整型,返回的是在中条件语句、循环诗句、跳转语句都有哪些条件语句:1) if2) switch循环语句:1) while(){}2) do{}while()3) for4) foreach跳转语句:1) break2) continue3) goto12、switch语句中的变量有类型可以是哪些类型switch(<express>){case <value> ://break;[•••n][default ://1}express的数据类型:数值型、字符型、字符串、枚举13、for循环语句执行过程for(初始化;条件;表达式){〃循环体}14、while循环和do...while循环有什么区别while循环是先判断再循环;do...while是先循坏再判断第一次条件不成立,while不执行循环体、do...while执行一次15、break和continue在循环语句中有什么区别break是退出循环;continue是跳过本次循环16、foreach循环有什么要求foreach(v类型〉v变量〉in v表达式:>){〃循环体}1)变量只读2)表达式返回的实例类型实现(Enumerable接口(数组或集合)3)类型应>=表达式的元素类型17、什么是数组,数组与集合的区别元素类型(数组:确定、集合:Object、泛型集合:确定);元素的数量(数组:固定、集合和泛型集合:可变)18、如何在保留数组原有元素值的基础上再添加一个元素,在此过程中是否重新形成实例19、多维数组和交错数组有什么区别int[] a = new int[5];int[,] b = new int[2,3];int[][] c = new int[2][];c[0] = new int[5];c[1] = new int[10];1)实例数量,多维数组一个实例,交错数组多个实例2)多维==》矩阵数组20、如何遍历一个数组的所有元素一维数组、多维数组、交错数组for、foreach 遍历21. 如何对数组进行排序、查找二、面向对象程序设计22、面向对象的三大特性是什么继承、封装、多态23、使用面向对彖的程序设计要达到什么样的目的可复用、可维护24、解释类和对彖(实例)的关系类==》对象(实例)实体(Entity)==》实例(Instance)25、类中的字段、方法、属性、事件的作用是什么字段:用来在类的内部存储(保存)数据属性:用来封装字段的读写方法:用来封装逻辑(功能)事件:实体内部发生某些变化时,引发对外界的响应26、构造方法的作用是什么初始化类实例,用来初始化类的实例成员27、什么是继承,继承描述的是父类和子类之间的怎样的一种关系ls-a子类型is a kind of父类型2& 对象之间都有哪些关系泛化关系:类的继承、类对接口的实现组合关系:依赖关系:29、子类成员都包括哪些1)子类从父类继承的成员2)子类新添加的成员3)重载4)覆盖5)隐藏30、子类能从父类继承什么样的成员所有成员(所有访问修饰符、所有类型(字段、属性、方法、事件))31、什么是重载能重载什么:能在哪儿重载:语法要求:本质:32 什么是覆盖33、什么是隐藏34、继承中子类和父类的构造方法有什么关系构造方法不能继承调用35、this和base指的是什么this对本类实例的引用base对父类(直接父类)实例的引用36、对象类型转换的原则是什么,什么情况下能够成功转换实例类型v=转换的目的类型实例类型是转换的0的类型或日的类型的子类37、接口、抽象类、抽象方法、抽象属性的作用是什么定义功能3& 类、抽象类、接口间的继承、实现关系是怎样的类(抽彖类)==》类(抽彖类):单继承类(抽象类)==》接口:多实现接口 ==》接口:多继承39> const和readonly在修饰字段时有什么区别const只能在声明时赋值,并同时包含“静态”含义readonly能在声明或构造方法中赋值赋值public class Sample{private readonly int i; private readonly A oa;public Sample(){i = 100;oa = new A();oa.i = 100;}public void SampleMethod(){i = 101; //wrongoa.i = 101; //OK oa = new A(); //wrong}}public class A{public int i;}40、abstract、virtuaL sealed在修饰方法或属性时都表示什么含义41、static可以修饰什么?都表示什么含义字段、方法、属性、事件:静态成员构造方法:静态构造方法==》初始化静态成员类:静态类42、什么是静态类,有什么特点一定没有实例构造方法(可以有静态构造方法)不能继承和被继承不能形成实例不能实现接口只能定义静态成员43、结构和类有什么区别1)结构是值类型、类是引用类型2)构造方法:结构的构造方法(初始化非静态成员、只能定义有参构造方法,系统一定自动添加无参构造方法);类的构造方法(初始化实例、没定义系统自动添加无参,有定义(定义有参、无参)・>不再自动添加)3)结构不支持显式的继承和被继承44、结构的作用封装小类型(字段、属性封装字段读写、少量方法),通常不会存在大量的包含逻辑的方法45、什么是泛型数据类型的后期绑定泛型类型(泛型类:List<T>;Dictionary<K,V>^ 接口:IComparablevT〉、结构:KeyValuePair<K,V>^ Delegate: Comparsion<T>)泛型成员(泛型方法)46、如何进行泛型的约束1)继承类或实现接口2)允许形成实例(new)3)值类型(struct)或引用类型(class)4)多约束:各约束条件I'可是“And”的关系<T>() where T : [struct | class] [, v类或接口>) [...n]] [, new()]Ex: <T>() where T : IA, IB47、什么是委托(Delegate)是.Net中的一种数据类型,用来实现对某一或某些特定方法的回调4& 什么是多路委托,如何实现一个Delegate对象,绑定对多个方法的回调MyDelegate d1 =…;MyDelegate d2 =…;MyDelegate d3 = d1 + d2;组合的必须是相同类型的Delegate49、什么是方法回调,实现方法回调有哪些方式,如何进行方法回调在组件端操作时响应某些客户端的操作两种方式:接口回调、Delegate回调50、什么是事件事件是类成员当实体内部发生某些变化时对外界的消息传递,并可以响应外界的相应的处理51、如何定义并引发事件组件端:1) XXXEventArgs : System.EventArgs2) Delegate:没有返冋值;两个参数(object sender,XXXEventArgs args)3) 组件类:i. 定义事件:事件类型是Delegateii. 引发事件的方法protected virtual void OnXXX(XXXEventArgs args)iii. MyEvent(this,args)52、如何在客户端处理事件obj. My Event += new XXXEventHandler(obj_MyEvent):三、.Net基本类库53、System.Object类的成员都有哪些ToString():string->返回的字符串用來描述实例的信息Equals(object obj):boolT逻辑上的对象的相等关系GetHashCode() :int^oa.Equals(ob)==true<--^oa.GetHashCode()==ob.GetHashCodeMemberwizeClone() zobject^ 浅表复制GetType():TypeTA oab = new B(); oab.GetType()->B54、Math类中相关的数学函数1)三角函数、双曲三角函数2)强制转换及Math. Truncate (截断)、Math.Round (四舍五入)、Math.Ceiling (返回大于或等于指定数字的最小整数)、Math.Floor (返冋小于或等于指定数字的最大整数)3)幕、根4)其他55、字符串操作(String 类、StringBuilder 类)1) null 和String.Empty 和””的关系2)字符串的特性3)字符串的查找、替换4)字符串的比较5)插入、修改(替换)、删除6)字符串和字符数组的互操作不使用正则表达式,判断一个字符串是否满足Email格式要求输入一个Decimal数字,转成一个大写货币型字符串StringBuilder处理的是变长的可变的字符串;String是定长的不可变的字符串在对一个字符串对象的内容进行频繁更改时,用StringBuilder56、基本数据类型(System.Int32)57、涉及文件系统管理的类(Path > Drive Info > File > Fileinfo、Dirctory、Directortylnfo)FileStream二进制文件的读写纯文本文件的读写、文本编码集合的各种接口之间的关系及各接口的作用各集合类泛型集合类什么是序列化二进制序列化转换器、Soap序列化转换器Xml序列化深表复制和浅表复制自定义序列化线程与进程如何定义并启动一个线程线程状态控制线程同步WinForm应用程序开发Code-Behead 的使用WinForm应用程序屮的事件处理数据绑定WinForm应用程序的配置方法的组件结构中的类的作用及类间关系Connection> Command (Parameter)^ DataReader 构建基于连接的数据访问操作存储过程及存储过程的参数DataSet 和类型化DataSet使用DataAdapter 操作DataSetWeb应用程序()HTML基础知识CSS的使用的执行过程中的Web控件的事件类型及执行顺序Web对象主题MasterPageASP. Net数据源控件数据绑定身份验证与授权什么是Ajax什么是Xml Web Service,如何创建一个Xml Web Service 如何在客户端使用Web Service。

visual studio解决inconsistent line ending的方法

visual studio解决inconsistent line ending的方法

visual studio解决inconsistent line ending的方法1. 引言1.1 概述本文旨在介绍如何使用Visual Studio解决代码文件中出现的"inconsistent line ending"问题。

通过了解该问题的定义、原因和解决方法,读者将能够准确识别和修复代码中的行尾符号不一致的情况。

1.2 文章结构本文主要分为以下几个部分:引言、Visual Studio解决inconsistent line ending方法、示例案例分析、其他常见方法对比分析和结论。

每个部分都有其独立的内容和作用,以帮助读者全面理解和应用本文所介绍的信息。

1.3 目的许多程序员在开发过程中可能会遇到"inconsistent line ending"这一问题,即代码文件中存在使用不同类型行尾符号(例如回车符或换行符)的情况。

这种问题可能导致代码在不同操作系统之间显示异常或无法正确编译运行。

本文旨在提供一种可靠且易于实施的解决方案,帮助开发人员通过使用Visual Studio,快速定位并修复该问题,提高代码质量与跨平台兼容性。

注意:文章内容仅为参考,请根据实际需求进行修改和补充。

2. Visual Studio解决inconsistent line ending方法2.1 什么是inconsistent line ending在计算机中,文本文件的每一行都以特定的字符序列作为换行符。

不同操作系统使用不同的字符序列来表示换行符,例如Windows使用回车(\r)和换行(\n)两个字符组成的序列(\r\n),而Unix或Linux则只使用换行(\n)字符。

当不同操作系统下创建、编辑或传输文本文件时,可能会导致换行符的格式不一致,即产生了inconsistent line ending。

2.2 引起inconsistent line ending的原因引起inconsistent line ending的主要原因是在跨平台之间编辑或传输文本文件时,操作系统的差异导致了换行符格式不一致。

VisualStudio运行代码遇到的问题(已解决)

VisualStudio运行代码遇到的问题(已解决)

VisualStudio运⾏代码遇到的问题(已解决) 继上⼀篇记录到新安装vs code后遇到的问题后,这⼀篇将介绍运⾏代码开始就碰到的闭门羹。

项⽬中需要智能识别⽤到Anaconda3模块,运⾏代码时以“C:/Anaconda3/python.exe”开头,经验告诉,应该是python的编译环境设置引起的。

先卸载Anaconda3,发现vs code报下⾯的错误& : ⽆法将“C:\Anaconda3\Scripts\conda.exe”项识别为 cmdlet、函数、脚本⽂件或可运⾏程序的名称。

请检查名称的拼写,如果包括路径,请确保路径正确,然后再试⼀次。

所在位置 C:\Users\fengye\Documents\WindowsPowerShell\profile.ps1:4 字符: 4+ (& "C:\Anaconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out- ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : ObjectNotFound: (C:\Anaconda3\Scripts\conda.exe:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException 添加Anaconda3环境变量到path中,本机是:D:\Anaconda3D:\Anaconda3\ScriptsD:\Anaconda3\Library\bin 再关闭运⾏vs code,提⽰& : ⽆法将“C:\Anaconda3\Scripts\conda.exe”项识别为 cmdlet、函数、脚本⽂件或可运⾏程序的名称。

MS问题集锦

MS问题集锦

MS问题集锦新⼿求答:1.⼀步计算完成后,有两个⽂件.xtd和.xsd。

再继续下⼀步计算,在哪个⽂件上进⾏操作呢?2.到最终运算结束,分析⽂件的时候,要分析哪个⽂件呢?.xtd还是.xsd的,还是分析不同的参数要选不同的⽂件呢?1、⼀般xtd⾥全选,复制,新建xsd,粘贴出来即可;或者导⼊table取总能量最低的2、除⾮分析性质随时间变化,⼀般就⽤xsd分析xtd是轨迹⽂件,xsd是结构⽂件,下⼀步的计算⼀般选xsd⽂件,计算结束后分析不同的参数需要选不同的⽂件。

1.Error calculate_finite_basis : Convergence failed when doing finite basis set correction这不提⽰了吗,应该是基组精度选择不合理改变⼀下参数也许能收敛,提⾼截⽌能量,降低⼀下K点或精度2.使⽤doml3计算磁性时,设置⾃旋多重度,发现Multiplicity: Select the multiplicity from the dropdown list to perform a calculation on a specific spin state. Available options are:AutoSingletDoubletTripletQuartetQuintetSextetSeptetOctet最⾼只能设到8。

是吗?input⽂件中可以修改设到更⾼的多重度吗?有的⽂献的多重度可达到11。

这是怎么回事?use formal spin的那个勾是表⽰使⽤formal spin作为初试⾃旋,⽽每个原⼦的formal spin是可以任意设置的。

如果是采⽤formal spin达到⽬的,那么formal spin设置有什么限制没?根据什么规律设置?⾃旋多重度和总磁矩有关系吗?3. 1 MS结构优化后的Optimization coverenge图中各线分别是什么意思?与结构优化之间的关系?2 xsd与xtd两个结构图,是xsd为优化后的结构吗?如果以优化后结构继续计算性质,是不是只要打开此⽂件再calculation?1、这三个在下⾯不是有说明吗?分别是能量变化,最⼤位移和最⼤⼒,当三者达到你设置的精度⼀下,就是分别低于相应的三条虚线时,scf完成2、对,xsd是最后优化好的结构,xtd应该是动画那种,要计算性质,就打开xsd⽂件calculation就ok了不过从图的全貌来看,并不是三者都达到基线以下了啊?如位移,还在基线以上。

VisualStudio2019使用常遇到的问题以及解决办法

VisualStudio2019使用常遇到的问题以及解决办法

VisualStudio2019使⽤常遇到的问题以及解决办法
近期在做⼀个简单的socket聊天程序,算是对VS有了更多深⼊的认识,今天就来博客总结⼀下,以免以后使⽤过程中会忘记。

1.解决⽅案与项⽬
Vsiual Studio中⼀个解决⽅案中可以包含多个项⽬,⼀个项⽬中只能有⼀个main函数,所以像socket编程,server和client要分开的话就必须建⽴俩个项⽬。

以socket程序为例,要想同时运⾏server和client的话可以采⽤这种⽅式。

1.⾸先将server项⽬设置成为启动项
⾸先⿏标右击项⽬,
再将其设置成为启动项,然后点击调试运⾏的就是启动项。

2.然后要运⾏client程序
右击client项⽬,
然后,点击调试后会出现三级菜单启动新实例。

2.⽆法引⼊⾃⼰写的头⽂件
这种情况会经常发⽣,是创建的项⽬中没有引⼊⾃⼰创建的.h⽂件,引⼊⽅法如下
项⽬->属性
->c/c++->常规->附加包含⽬录
将头⽂件所在⽬录引⼊就好了。

3.如何查看⼀个类型的定义
在使⽤VS过程中,我们会经常遇到⼀个莫名奇妙的类型,如WORD,DWORD,乍⼀看很奇怪,什么奇奇怪的类型,c++中还有这种类型,这是嘛呀?这时候我们就需要跳到WORD类型的定义当中去⼀探究竟。

直接右键要查看的类型,然后转到定义就会跳转到类型定义的⽂档中直接查看类型的定义了。

其实WORD就是unsigned short,DWORD也不过就是unsigned long罢了。

vs2013问题总结

vs2013问题总结

目录目录 (1)注释/取消注释 (1)"TCHAR *" 类型的实参与"char *" 类型的形参不兼容 (1)有多个重载函数"pow" 实例与参数列表匹配 (2)无法打开源文件"stdafx.h" (5)模块对于SAFESEH 映像是不安全的 (5)VS产生sdf和ipch文件太大处理方案 (9)STL模板特化遇到的问题 (10)error C2665: “AfxMessageBox”: 2个重载中没有一个可以转换所有参数类型 (11)类型定义在后,调用在前 (11)vs为什么把void CMyView::OnDraw(CDC* pDC)的第2个参数注释了啊? (12)怎么获取指定View的CDC (13)两个view(View1和View2)之间的同步 (13)指令: MFC does not support _WIN32_WINNT (13)缺少显式类型(假定“int”) (13)无法解析的外部命令—lib的调用 (14)error: Building MFC application with /MD[d] (15)error C4996: 'fopen': This function or variable may be unsafe. (17)VC 如何Copy一个项目的资源文件中的对话框到另一个项目 (17)“TRACE”: 找不到标识符 (20)无法打开包括文件: “fstream.h” (20)static_cast 无法从“void (__thiscall CREBot* )(WPARAM,LPARAM)”转换 (21)ReadHuge”: 不是“CFile”的成员 (22)PARAFORMAT 如何转换为PARAFORMA T2?? (23)Donnie Liang注释/取消注释1)注释:组合键“Ctrl+K+C”;2)取消注释:组合键“Ctrl+K+U”不过是单行注释如果相要全部注释可以先按Ctrl+A 再按Ctrl+K+C"TCHAR *" 类型的实参与"char *" 类型的形参不兼容6 IntelliSense: "TCHAR *" 类型的实参与"char *" 类型的形参不兼容d:\VSprj\Lelecode\DataShowClass\DataShow\DataShow.cpp 985 12 数据显示类1>d:\vsprj\lelecode\datashowclass\datashow\datashow.cpp(451): error C2664: “void ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::Format(U INT,...)”: 无法将参数1 从“const char [7]”转换为“const wchar_t *”错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See /fwlink/p/?LinkId=286820 for more information. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets 369 5 数据显示类使用VS2013编译旧版VC++程序时,提示Building an MFC project for a non-Unicode character set is deprecated,微软提供了解决方案。

高版本VisualStudio出现的一些问题和解决方法

高版本VisualStudio出现的一些问题和解决方法

高版本VisualStudio出现的一些问题和解决方法
安装多个VS 出现这个问题:
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。

VS2010和VS2012或者sv2008和VS2010,高版本VS编译都会出现以上问题:
使用VS2008的D:\Program Files\Microsoft Visual Studio 9.0\VC\bin目录下的cvtres.exe 替换到VS2010版本VS目录下再编译成功。

如果不行再用以下操作:
于是对该工程以及所有依赖工程进行如下操作
1.右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否].(可以解决当前工程项目的问题)
2.把debug编译器改为release即可。

3.VS2010 2012CLR更换NET版本不像C#可以项目属性直接更改,需要修改 *.vcxproj里面
节点添加以下内容
v2.0。

visual studio code小技巧 -回复

visual studio code小技巧 -回复

visual studio code小技巧-回复Visual Studio Code(以下简称VS Code)是一款由微软推出的轻量级文本编辑器,旨在提供开发人员一个高效、快捷的编码环境。

作为一款开源软件,VS Code在全球范围内广受开发人员的喜爱,其灵活的配置选项和强大的扩展功能为用户提供了无限的可能性。

本文将介绍一些VS Code的小技巧,帮助用户更好地利用这款编码工具。

一、安装和配置VS Code首先,用户需要从VS Code官方网站(Code。

安装完成后,用户可以通过如下步骤配置VS Code:1. 选择界面语言:在VS Code的主菜单中选择"File"->"Preferences"->"Settings",在打开的设置界面中搜索"locale"关键字,并选择合适的界面语言。

2. 设置默认编码格式:在设置界面中搜索"files.encoding"关键字,并选择合适的编码格式。

通常情况下,UTF-8是一个常用的默认编码格式。

3. 配置自动保存:在设置界面中搜索"files.autoSave"关键字,并选择合适的自动保存模式。

用户可以根据自己的需求选择自动保存的时间间隔,比如"afterDelay"表示在用户停止编辑一段时间后自动保存。

4. 安装推荐插件:在VS Code的主菜单中选择"View"->"Extensions",在打开的扩展视图中搜索并安装一些常用的插件。

比如,"Python"插件可以提供代码补全和调试功能,而"GitLens"插件可以增强VS Code和Git版本控制工具的集成,等等。

二、编辑代码1. 快速打开文件:按下"Ctrl+P"快捷键,然后输入文件的相对路径或名称,即可快速打开该文件。

VC常见的108个问题

VC常见的108个问题

VC常见的108个问题.txt2008太不正常了,一切都不正常!在这个关键时刻,中国男足挺身而出,向全世界证明:中国男足还是正常的!(1)如何通过代码获得应用程序主窗口的指针? 主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。

AfxGetMainWnd()->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2)确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。

Example:TCHAR exeFullPath[MAX_PATH] // MAX_PATH在MFC中定义为260GetModuleFileName(NULL,exeFullPath,MAX_PATH)(3)如何在程序中获得其他程序的图标?两种方法:(1) SDK函数 SHGetFileInfo 或使用ExtractIcon获得图标资源的 handle,(2) SDK函数 SHGetFileInfo 获得有关文件的很多信息,如大小图标,属性, 类型等. Example(1):在程序窗口左上角显示NotePad图标.void CSampleView::OnDraw(CDC * pDC){if( ::SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"),0,&stFileInfo,sizeof(stFileInfo),SHGFI_ICON)){pDC ->DrawIcon(10,10,stFileInfo.hIcon);}}Example(2):同样功能,Use ExtractIcon Functionvoid CSampleView::OnDraw(CDC *pDC){HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0);if (hIcon && hIcon!=(HICON)-1))pDC->DrawIcon(10,10,hIcon);}说明: 获得notepad.exe的路径正规上来说用GetWindowsDirectory函数得到, 如果是调用win95下的画笔,应该用访问注册表的方法获得其路径,要作成一个比较考究的程序,考虑应该全面点.(4)获得各种目录信息Windows目录: Use "GetWindowsDirectory"Windows下的system目录: Use "GetSystemDirectory"temp目录: Use "GetTempPath"当前目录: Use "GetCurrentDirectory"请注意前两个函数的第一个参数为目录变量名,后一个为缓冲区后两个相反.(5)如何自定义消息1) 手工定义消息,可以这么写#define WM_MY_MESSAGE(WM_USER+100),MS推荐的至少是WM_USER+100(2)写消息处理函数,用WPARAM,LPARAM返回LRESULT.LRESULT CMainFrame::OnMyMessage(WPARAM wparam,LPARAM lParam){//加入你的处理函数}(6)如何改变窗口的图标?向窗口发送 WM_SETICON消息。

vs常见错误详解

vs常见错误详解

目录VC常见连接错误描述及解决办法 (2)warning LNK4099: PDB 原因及解决方案 (6)Error:Lnk2005调用多个外部链接库时必须使用相同的运行时库(/MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题,l) (8)1、编译选项的位置 (8)2、各个设置选项代表的含义 (8)1、为什么选择/MD,不选/MT? (9)2、为什么选择/MT,不选择/MD? (9)3、多个模块,必须选择相同的运行时库。

(9)VC常见连接错误描述及解决办法1.nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argcnafxcw.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctypenafxcw.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctypenafxcw.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctypenafxcw.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype ..\..\Output\Release/FirewallMan.exe : fatal error LNK1120: 3 unresolved externals Error executing link.exe.解决办法:PROJECT->SETING->C/C++->PREPROCESSOR->定义 _AFXDLL,完毕。

VS常见调试错误信息

VS常见调试错误信息

1.检测到有潜在危险的 Request.Form 值2.“在没有任何数据时进行无效的读取尝试”解决办法3.数据为空。

不能对空值调用此方法或属性。

4.阅读器关闭时 FieldCount 的尝试无效5.未能映射路径6.Unreachable code detected7.索引超出范围。

必须为非负值并小于集合大小8.数据为空。

不能对空值调用此方法或属性9.数据源不支持服务器端的数据分页10.对象名'***** '无效11.在建立与服务器的连接时出错。

在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。

(provider: 命名管道提供程序,error: 40 - 无法打开到 SQL Server 的连接) 12.SqlDateTime 溢出。

必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间。

13.出现-------表示“属性”,此处应为“方法”14.未能从程序集“DAL, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”中加载类型“DAL.SqlHelper”。

15.为过程或函数指定的参数太多16.无法启动调试,绑定句柄无效17.Unable to debugging on the web server.Debug failed because integrated windows authentication is not enable18.Automation 操作中文件名或类名未找到: 'RegExp'19.System.NullReferenceException: 未将对象引用设置到对象的实例。

20.错误 1718。

文件被数字签名策略拒绝(安装vs2005sp1时)21.vs2005不能从源文件模式切换到视图模式22.Validation of viewstate MAC failed23.Automation server can't create object"(Automation 服务器不能创建对)24.包加载失败25.Error spawning 'cmd.exe'.26.尝试读取或写入受保护的内存27.无法在证书存储区中找到清单签名证书28.该项目中不存在目标“ResolveKeySource”。

Visual-Basic-60常见错误及解决方案

Visual-Basic-60常见错误及解决方案

Visual Basic 60常见错误及解决方案Visual Basic 常见错误及解决方案以下“解决方案”中的内容对应的是“错误分析”中内容的解决方法。

1. 无效的过程调用或参数(错误5)错误原因有些调用操作不能完成。

错误分析。

⑴参数值可能超出了允许的范围。

例如,Sin 函数只接受特定范围的值。

正的参数小于2,147,483,648的是可接受的,而等于2,147,483,648 则会产生错误。

⑵如果所要调用的过程不适于当前平台的话,也会发生此错误。

例如,有些程序可能只应用到Microsoft Windows 或Macintosh 等。

解决方案⑴检查参数的许可范围。

⑵检查过程的特定平台信息。

2. 溢出(错误6)错误原因当赋值超出目标的限制时,就会发生溢出。

;错误分析⑴赋值、计算或数据类型的结果的转换太大,以致于不能在变量类型所允许的范围内表示出来。

⑵给属性的赋值超过属性能接受的最大值。

⑶试图在计算中使用一个数字,并且该数字被强制为一个整数,但是结果超过了整数的范围,例如:Dim x As Longx = 2000 * 365 ' 错误: 溢出Visual Basic2、解决方案⑴赋值给足够表示值的范围的类型的变量上。

⑵确保赋值适合属性的范围。

⑶要解决这个问题,请按如下方式键入该数字:Dim x As Longx = CLng(2000) * 3653. 内存溢出(错误7)错误原因…需要更多的内存空间,或是遇到64K 段边界限制。

错误分析⑴打开了太多的、文档或资源文件。

⑵模块或过程太大了。

⑶在Microsoft Windows 标准模式下执行。

⑷在Microsoft Windows 增强方式下执行,但超出了虚拟内存的空间。

⑸一些驻留程序在运行。

⑹设备驱动程序装载的太多。

*⑺Public 变量超出了空间。

解决方案⑴关闭不需要的应用程序、文档或资源文件。

⑵将庞大的模块或过程分成几个。

虽然这样不能节省内存空间,但可避免64K 段边界限制。

VisualStudio2019常见问题及解决办法

VisualStudio2019常见问题及解决办法

VisualStudio2019常见问题及解决办法Ø简介本⽂主要记录本⼈在⼯作中使⽤ VS2019 开发时所遇到的问题,以及对应的解决办法。

1.⽆缘⽆故代码报红⾊波浪线2.解决 NU1605 包降级错误3.解决 MSB3021 编译报错4.配置私有 NuGet 源后使⽤时报错(401 Unauthorized)1.⽆缘⽆故代码报红⾊波浪线Ø错误描述代码中引⽤的类,或引⽤的命名空间报红⾊波浪线,但是项⽬能正常⽣成成功,⽽且也能正常运⾏。

Ø解决办法1)关闭 Visual Studio;2)删除解决⽅案⽬录下的 .vs 隐藏⽬录和⽂件(该⽬录和⽂件会在下次打开项⽬后⾃动创建);3)VS 重新打开项⽬OK(注意:之前项⽬中打开的⽂件会被全部清除掉,需要重新打开)。

2.解决NU1605 包降级错误Ø错误描述NU1605 检测到包降级: System.Threading 从4.3.0 降级到4.0.11。

直接从项⽬引⽤包以选择不同版本。

DataModel -> mon -> log4net 2.0.8 ->System.Console 4.0.0 -> runtime.unix.System.Console 4.3.0 ->System.Threading (>= 4.3.0) DataModel -> mon -> log4net 2.0.8 ->System.Threading (>= 4.0.11)Ø错误原因1)从错误信息看出,是因为引⽤了第三⽅包"log4net",⽽导致依赖程序包之间的版本不⼀致所导致。

2)在之前发布 Windows 环境时,是没有这个依赖错误的,现在发布到 Linux x64 才出现了这个错误,具体原因不详!?Window Server 2019 发布选项CentOS 7.6 发布选项其实,两者唯⼀的区别也就是⽬标运⾏时,但发布或编译就有了明显区别。

VisualStudio问题集锦by低调年华,未完待续

VisualStudio问题集锦by低调年华,未完待续

VisualStudio问题集锦by低调年华,未完待续问题集锦vs2013的安装需要网络接入,否则安装后部分功能无法使用!1.error MSB: 3073,已退出,代码1解决方法:项目属性,生成事件,后期生成事件,命令行(改为默认即可)2.VS2010显示行号解决方法:工具,选项,文本编辑器,C/C++,自动换行,行号。

3.error LNK 1120:无法解析的外部命令解决方法:这个问题的原因是有头文件,但是找不到实现。

1)只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp 文件中的)。

所以只能通过编译,连接不成功。

2)另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。

这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。

4.error LNK 2019:无法解析的外部符号原因:lib库可能无法匹配,更换lib库即可。

5.关于无法解析的外部命令的所有可能原因考虑可能的原因[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib 包.[1]只写了类声明,但还没有写实现类,造成调用时无法解析[2]声明和定义没有统一,造成链接不一致,无法解析[3]没有在项目属性页的链接器的命令行选项加入相应的类包。

[4]没有在c++包含目录和库目录加入相应的类包路径[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。

[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库[8]出现如下错误的原因一般是动态库没有包进来。

VisualStudio使用中的常见问题

VisualStudio使用中的常见问题
3.自 动 对 齐 代 码
Ctrl+K, Ctrl+J.
为了使自己的源代码看起来美观整齐比如说缩进的时候应该用多少个空格或多少个制表符
VisualStudio使 用 中 的 常 见 问 题
1.visual studiText Editor>All Languages>Tabs>
2.Visual Studio--- 如何查看隐形的空格 (white space)和制表符 (tab)
为了使自己的源代码看起来美观整齐, 比如说缩进的时候应该用多少个空格, 或多少个制表符. 三个空格和四个空格没有明显的区别, 四个 空格和一个制表符光靠肉眼也不容易分辨。 开启这个功能有两种方式: 使用菜单, 打开Edit–> Advanced–> View White Space 使用键盘的快捷键, 按下Ctrl+E,S

Visual Studio 问题集锦

Visual Studio 问题集锦

1.#include "stdafx.h"/*是预编译处理器把stdafx.h文件中的内容加载到程序中来。

stdafx.h1名称的英文全称为:Standard Application Fram Extend所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。

这样可以加快编译速度,节省时间。

预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。

编译器通过一个头文件stdafx.h来使用预编译头文件。

stdafx.h这个头文件名是可以在project的编译设置里指定的。

编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。

因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。

2 详细工作原理及作用stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。

Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。

由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。

为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclude文件。

且这一文件可以随被选择的选项而变化。

vc常遇到的问题总结

vc常遇到的问题总结

(1)为什么某个类突然在工作区间里面突然看不见了?只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了(2)在基于对话框的程序中,一按回车键,对话框就没了。

把确定按纽的缺省属性前面的对勾去掉,重载OnOk()函数,在OnOk()函数里注释掉调用基类的OnOk()函数那行代码(3)为什么我的自动显示成员列表功能时有时无?删除该项目扩展名为.ncb文件,重新打开该项目。

(4)孙老师的视频教程第一课的程序,为什么在我机子上不行?选菜单project->settings...在弹出的对话框中选Link,在最下边有Project Options,把里边的/subsystem:console删除就可以了(5)如何干净的删除一个类?先从workspace中的fileview中删除对应的.h和.cpp文件;再关闭项目,从实际的文件夹中删除对应的.h和.cpp文件;再删除.clw文件。

最后打开项目,rebuild all。

(6)网络编程一课中的聊天室程序在为什么老是绑定失败?一般这种问题是端口设置在6000监听,正好和QQ的端口冲突,多换几个端口试试就可以了(7)网络程序只能在debug运行,release不行,提示错误error LNK2001: unresolved external symbol __imp__WSAStartup@8在Release下仍然需要添加。

(8)我画了一条直线但是当窗口最大化时或者被其他窗口覆盖时,直线不见了,只剩下直线原先存在的窗口这是因为窗口重绘,你可以在响应WM_PAINT的OnDraw()函数中添加画线的代码(9)在安装VC时未安装MSDN, 自己再用MSDN安装盘安装后在VC中按F1无法调用?修改注册表是最直接的方法,具体过程如下: 在下增加Enable,Filename,State三个主键,注意其类型,含义如下: Enable 类型:DWORD,默认值是1,改变为0x00000001 Filename 类型:字符串改为c:program files....MSDev98helpMsdev.hlp State 类型:DWORD 默认值为0,改变为0x00000001(10)如何在应用程序中打开一个超级链接?这个问题实际上很简单,只要使用ShellExecute API函数就行了(11)如何在没安装VC的环境下的机器也能打开运行用MFC编写的程序?把编译模式改为RELEASE,然后点工程-》设置-》常规,选择使用MFC作为静态连接库(12)如何自定义一个消息?1.#define WM_MY_MESSAGE WM_USER+1;2.头文件DECLARE_MESSAGE_MAP()前写消息响应函数原形;3.在BEGIN_MESSAGE_MAP添加消息到函数的映射.4.写函数的实现部分(13)怎样改变VC++编辑器默认的颜色?工具—》选择—》格式,选中注释的颜色即可改变。

VisualStudio开发(三):VisualStudio使用时常见问题解决方案

VisualStudio开发(三):VisualStudio使用时常见问题解决方案

VisualStudio开发(三):VisualStudio使⽤时常见问题解决⽅案⼀、Error LNK2019: ⽆法解析的外部符号此问题应该是Visual Studio的初学者最常碰到的问题,也是相对来说很让⼈头疼的问题。

注:Error LNK2019 问题在VC 6.0 中是 error LNK2001: unresolved external symbol 问题。

此问题出现在编译的时候,例如:Dlgcode.obj : error LNK2019: ⽆法解析的外部符号 _readRegmark,该符号在函数 _AboutDlgProc@16中被引⽤。

这种错误的本质是链接器⽆法在已编译的obj、lib或dll⽂件中找到函数定义。

下⾯是可以尝试的解决⽅案:1. 检查项⽬中是否是只有头⽂件(有了函数声明)却没有lib。

⼀般出现于你使⽤了第三⽅提供的库(当然如果库是⾃⼰写的,也会这样,重点是没有导⼊lib),下载了头⽂件却忘了载库⽂件,或库⽂件忘记放到相应的⽬录下了。

2. 如果进⾏上⾯的检查后发现并没有问题,头⽂件没问题,cpp⽂件也没问题,相应的库都正常引⼊了,但是依旧出现LNK2019错误。

此时我们就应该从代码层⾯去排查问题了。

很有可能是C语⾔和C++语⾔混编导致的问题。

因为C++⽀持函数重载,所以C++编译器⽣成的库⽂件中的函数名会⾯⽬全⾮。

例如C编译器会⽣成 _readRegmark 这个函数名,⽽C++编译器则⽣成了"void __cdecl readRegmark(char *)" (?readRegmark@@YAXPAD@Z)这么个函数名。

当你的函数是⽤C语⾔写的,VS编译器会按C语⾔规则编译,但链接器却不知道还傻傻的⽤C++规则的函数名去找结果就找不到了。

解决办法:在C语⾔的头⽂件中加⼊extern "C",代码⽅式如下:extern "C" {#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libavutil/imgutils.h"#include <libswresample/swresample.h>#include "SDL.h"}。

VS的10个调试技巧

VS的10个调试技巧

Visual Studio原生开发的10个调试技巧最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。

这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。

我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。

(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是我的整理的一些技巧:1. 异常中断| Break on Exception2. Watch窗口中的伪变量| Pseudo-variables in Watch Windows3. 符号越界后查看堆对象|4. 查看数组的值5. 避免进入不必要的函数6. 从代码启动调试器| Launch the debugger from code7. 在Output窗口打印8. 隔离内存泄漏9. 调试发行版| Debug the Release Build10. 远程调试技巧1:异常中断在处理被调用之前,异常发生时可以启动调试器进行中断,可以让你在异常发生后立即调试程序。

操作调用栈便于你去查找异常发生的根本原因。

Vistual Studio允许你去指定想要中断的异常类型或者特殊异常。

选择菜单Debug>Exceptions弹出对话框,你可以指定原生的(或者托管的)异常,除了调试器自带的一些默认异常,你还可以添加自己的自定义异常。

下面是一个std::exception 异常抛出时调试器中断的例子。

∙1.异常抛出时如何中断∙2.如何添加新的异常技巧2:Watch窗口中的伪变量Watch窗口或QuickWatch对话框提供一些特定的(调试器可识别的)变量,被称为伪变量。

文档包含以下:∙$tid—–当前线程的线程ID∙$pid——进程ID∙$cmdline———-启动程序的命令行字符串∙$user———-正在运行程序的账户信息∙$registername—–显示寄存器registername 的内容不管怎么样,关于最后一个错误的伪变量是非常有用的:∙$err——–显示最后一个错误的错误码∙$err,hr—显示最后一个错误的错误信息技巧3:符合越界后查看堆对象有时候,在调试符号越界后,你还想查看对象的值,这个时候,watch窗口中的变量是被禁用的,不能再查看(也不能更新),尽管对象仍然存在。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题集锦vs2013的安装需要网络接入,否则安装后部分功能无法使用!1.error MSB: 3073,已退出,代码1解决方法:项目属性,生成事件,后期生成事件,命令行(改为默认即可)2.VS2010显示行号解决方法:工具,选项,文本编辑器,C/C++,自动换行,行号。

3.error LNK 1120:无法解析的外部命令解决方法:这个问题的原因是有头文件,但是找不到实现。

1)只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp 文件中的)。

所以只能通过编译,连接不成功。

2)另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。

这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。

4.error LNK 2019:无法解析的外部符号原因:lib库可能无法匹配,更换lib库即可。

5.关于无法解析的外部命令的所有可能原因考虑可能的原因[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib 包.[1]只写了类声明,但还没有写实现类,造成调用时无法解析[2]声明和定义没有统一,造成链接不一致,无法解析[3]没有在项目属性页的链接器的命令行选项加入相应的类包。

[4]没有在c++包含目录和库目录加入相应的类包路径[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。

[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库[8]出现如下错误的原因一般是动态库没有包进来。

__impProjectRun.obj : error LNK2019: 无法解析的外部符号__imp__StartHistoryLocalModule,该符号在函数"protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)" (?DoStart@CProjectRun@HiRTDB@@MAEHXZ) 中被引用[9]error LNK2001: 无法解析的外部符号__imp___CrtDbgReportW工程属性,C/C++,代码生成,运行时库选择MDd,[10]无法解析的外部符号"__declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)" (__imp_?GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseR eadValues@2@@Z),该符号在函数"public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)" (?Get@CStringImpl@HiRTDB@@QAEHHABUSStringReadProps@2@AAUSStringReadValues @2@@Z) 中被引用原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。

6.参数basepath不能是相对路径解决方法:basePath不能是相对路径,在项目->配置属性->调试->中,将命令和工作目录改为绝对路径。

这里将其改为默认即可。

7.应用程序无法正常启动,(代码0xc0150002)解决方法:缺少此应用程序所需动态库的VC++运行库,安装对应的VC++运行库即可。

8.error LNK1123: 转换到COFF 期间失败: 文件无效或损坏我已经将项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”,但是还是不行,这是为什么?我以前是VS 2010,自从我装了VS2012之后就出现了这个问题,现在VS 2012已经卸载掉了,但还是不行。

解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123”错误,解决方案为将项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单“是”改为“否”即可,但是没新建一个项目都要这样设置一次。

在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:第一步:与上相同。

第二步:将项目|项目属性|配置属性|连接器|清单文件|嵌入清单“是”改为“否”。

第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:计算机是否为64bit操作系统,如是,继续。

查找是否有两个cvtres.exe。

一个是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe,另一个是C:\Windows\\Framework\v4.0.30319\cvtres.exe。

右键属性|详细信息查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。

意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。

9.Error MSB8031Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library.实际上是VS2013把multi-byte character set (多字节)支持移除。

需要安装vc_mbcsmfc.exe补丁。

10.fatal error C1083: 无法打开包括文件步骤1:定位报“fatal error C1083:”错误的文件,找到它所在的目录。

步骤2:添加该项目的附加路径。

如图所示:1)右键查看该项目的属性2)点击配置属性——〉C/C++ ——〉常规——〉附加包含目录——〉将报错文件所在目录添加进去3)将项目的本地路径替换为工程相对路径工程根目录为:$(ProjectDir)其子目录inc为:$(ProjectDir)inc4)点击“确定”按钮。

步骤3:重新编译生成,问题可以得到有效解决。

11.因串口API函数用到了多字节字符集,导致对话框界面风格win2003样式问题在stdafx.h中。

看这个文件中是否有1.#ifdef_UNICODE2.3.#if defined _M_IX864.5.#pragma comment(linker,"/manifestdependency:\"type='win32'name='mon-Controls' version='6.0.0.0' processorArchitecture='x86'publicKeyToken='6595b64144ccf1df' language='*'\"")6.7.#elif defined_M_IA648.9.#pragma comment(linker,"/manifestdependency:\"type='win32'name='mon-Controls' version='6.0.0.0' processorArchitecture='ia64'publicKeyToken='6595b64144ccf1df' language='*'\"")10.11.#elif defined_M_X6412.13.#pragma comment(linker,"/manifestdependency:\"type='win32'name='mon-Controls' version='6.0.0.0' processorArchitecture='amd64'publicKeyToken='6595b64144ccf1df' language='*'\"")14.15.#else16.17.#pragma comment(linker,"/manifestdependency:\"type='win32'name='mon-Controls' version='6.0.0.0' processorArchitecture='*'publicKeyToken='6595b64144ccf1df' language='*'\"")18.19.#endif20.21.#endif如果有,还是界面风格不正确,那么上面的代码去掉#ifdef _UNICODE宏。

一般都是由于你的程序环境使用的是多字符集造成的。

12.Run-Time Check Failure #3 - The variable 'comstat' is being used without beinginitialized方案1: 改变项目配置属性一种解决方案是改变基本运行时检查(changing the runtime checks in project settings):在菜单Project->Project properties-> C/C++ -> Code generation-> Basic Runtime checks --> change to 'Default',在中文版中是:项目-〉属性-〉配置属性-〉C/C++代码生成-〉基本运行时检查-〉设置为默认,当将基本运行时检查改为默认之后,编译自然顺利通过了,向串口调试助手发送消息正常了,再从串口调试助手向SerialPortTest发送消息时,也正常了。

相关文档
最新文档