VS2010工具常见的部分错误整理(三)

发布于: 2018-05-28    浏览: 2760    作者:系统管理员

一:fatal error C1189: #error :  This file requires _WIN32_WINNT to be#defined at least to 0x0403. Value 0x0501 or higher is recommended. 

解决方法:

C/C++->Preprocessor->PreprocessorDefinitions中的_WIN32_WINNT=0x0501改掉就可以了 

2

regsvr32无法注册控件 


解决方法:

depends.exe打开要注册的控件,找出这个控件所依赖的文件,缺少的文件在网上下载下来,补上就可以了。 

3

Graphedt.exe打开后在任务栏里面有,但是点击后无法显示 

解决办法:打开任务管理器,在应用程序中找到Graphedt.exe,右击选择最大化就可以看见程序了。

4

弹出对话框“attempt anunsupport operation!,是因为被关联的控件的ID号和DoDataExchange中的控件ID不同。   

5)“Encounteredan improper argument”,控件被删除了,但是还有代码对控件进行操作而导致的


6

C:\ProgramFiles\Microsoft SDKs\Windows\v7.0A\include\winioctl.h(39): error C2374:'GUID_DEVINTERFACE_DISK' : redefinition; mult 

重复包含了头文件“winioctl.h 

 

7

error C2059: syntax error : 'catch' 

右键点击工程名,properties->ConfigurationProperties->C/C++->PreProcessor->Preprocessor Definitions中将try=__try去掉即可! 


8

关于这样的错误 libcpmtd.lib(string.obj) : error LNK2005: "public: void__thiscall 

 

 

VC2008下 在一个动态库工程中, 改成了编程静态库, 成功编译, 但使用静态库的工程编译时就出现下面一堆连接错误

  

经过查找 解决方法如下

说是因为 Project->C/C++->Code Generation->Runtime Library 这个选项,LIB和主程序(EXE)里选择的不一致引起的。后来改成一样就好了。 

  

exe工程改为/MTD(因为Lib工程是选择/MTD) 编译还是错误 

于是 把EXE工程和Lib工程都选择为/MDD 成功编译 

  (9

errorC2159: more than one storage class specified  

 

vc6.0的工程转换成vs2008居然就编译通过了 

 

 

10

errorC2872: 'ostream' : ambiguous symbol 

 

改变了#include<iostream>的位置就好了 

 

11error MSB4044: 未给任务“CppClean”的必需参数“FoldersToClean”赋值

   The "CppClean" task was not givena value for the required parameter "FoldersToClean"


解决办法:工程 - 属性 - 配置属性 - 常规 - 中间目录,为空导致这个错误。写入$(Configuration)即可。


12error D8016: '/ZI' and '/GL' command-line options areincompatible 


解决办法:把Debug调试项改为/ZI /Od ;  Project Settings ->C/C++ -> General 



13

fatalerror C1189: #error :  This file requires_WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher isrecommended.


解决办法:C/C++->Preprocessor->PreprocessorDefinitions中的_WIN32_WINNT=0x0501改掉就可以了 


14

errorC2059: syntax error : 'catch'


解决办法:properties->ConfigurationProperties->C/C++->PreProcessor->Preprocessor Definitions中将try=__try去掉即可!


15

errorC2664: “MessageBoxW: 不能将参数 2 从“const char [17]”转换为“LPCWSTR


解决办法:将多字符集改成Unicode字符集

16

在运行控制台程序的时候经常会一闪而过


解决办法:可以再代码的最后加上system("pause");


17

errorLNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup


解决办法:
1.菜单中选择 Project->Properties, 弹出Property Pages窗口
2.在左边栏中依次选择:ConfigurationProperties->C/C++->Preprocessor,然后在右边栏的PreprocessorDefinitions对应的项中删除_CONSOLE, 添加_WINDOWS.
3.在左边栏中依次选择:ConfigurationProperties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)

本文源于https://blog.csdn.net/qq_25867649/article/details/53887270(侵删!)

在线客服

售前咨询

售后服务

投诉/建议

服务热线
0731-83091505
18874148081