1、fatal error C1189: #error : WinSock.h has already been included
问题描述:在编译文件中包含多个文件使用使boost::asio时可能提示以上错误,
百度之后的解决方法大同小异,如下:
(a)
调整文件顺序,尝试将
#include "winsock2.h"
在包括mysql和boost :: asio之前
(b)
在包含Windows.h前定义宏WIN32_LEAN_AND_MEAN
(c)在boost/asio.hpp头文件前面加上 #define BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN
#define BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN
#include <boost/asio.hpp>
(d)添加如下代码
#ifdef BOOST_OS_WINDOWS
#define _WIN32_WINNT 0x0501
#if _WIN32_WINNT <= 0x0501
#define BOOST_ASIO_DISABLE_IOCP
#define BOOST_ASIO_ENABLE_CANCELIO
#endif
#endif
但是上面的方法我都试过,然而没效果(针对当时情况)
解决方法:(懒人专用)后来发现在项目 ->属性 -> C/C++ -> 预处理器 -> 预处理器定义
在其中添加 :
WIN32_LEAN_AND_MEAN
(WIN32_LEAN_AND_MEAN表示不包含一些极少使用和偏门的资料)
2、将vs创建的dll项目改为用qt创建,发现std::min以及std::max出现未定义函数问题
解决方法:使用std::min< T> 将具体类型手动写入,不用函数自动推导重载。
【笔记1-5】Qt bug
记录
:
C11
89
Qt requires a
C++
17 compiler, and a suitable value for __cplusplus. On MSVC
错误1: unexpected end of file while looking for precompiled header directive改正方法:工程->设置->C/
C++
,在分类中选中“预编译的头文件”,然后选中“自动使用预补偿页眉”或“不使用预补偿页眉”
错误2:unresolved external symbol __mbctype或unresolved exter...
在vc开发中,时常遇到这个错误
C11
89
:
Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
网上的解决办法五花八门。最后发现http://blog.csdn.net/a5142
搭建的kylin工程Release编译没有
问题
,但是修改为debug的时候,发现编译报错。
解决方案:在 属性=>C/
C++
=>预处理器=>预处理器定义中添加下面这个就可以编译通过了。
_SCL_SECURE_NO_WARNINGS
又看了一下项目中的配置,在预处理器定义中还有下列配置:
_CRT_SECURE_NO_WARNINGS、_USEDLL、PA_FAST、PROJECT_KYLIN、GAME_SERVER;不知道干嘛用的,先
记录
下,回头研究。
其实在CSDN注册用户好多年了,大多都是寻求帮助,看看别人的心得,或是下载资料,着实有点羞愧!
但最近越来越感觉到自己脑子更加不好使了,可能以前遇到过的
问题
,当时已经搞定,经过一段时间再遇到,自己居然一点印象都没有了,悲摧啊!
突然想到可以用这种方式
记录
下自己曾经的想法和做法,原创也好,转载也好,对自己肯定有好处,兴许还能能给别人帮上忙。ps:自己也算有个博客了,顺便满足虚荣心。
废话不多说
1.错误 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.
错误 MSB8031不赞成为非Unicode字符集生成MFC项目。您必须将项目属性更改为Unicode,或者下载一个附加库。
2.错误
C11
89
#
error
: Build
编译项目之后出现如下
问题
: 解决办法: 1、双击改
问题
跳转到相应的代码段,我代码段如下所示:(不同版本可能不同,但大同小异)
2、可以通过将 NO_WARN_MBCS_MFC_DEPRECATION 预处理器定义添加到您的项目生成定义消除此警告。在项目stdafx.h文件中的#pragma once下面添加如下代码:
3、将stdafx.h文件中
4、在VS中,右击项目->属性 ->链接器 -> 清单文件 -> 生成清单 -> 选择否
发现再次编译运行就没
问题
了......