![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 54
qq_34911636
这个作者很懒,什么都没留下…
展开
-
C++强制类型转换与字符类型之间的转换
在C语言中,强制类型转换的方式为(Type)Expression,另外还有一种现在已经不用的旧式写法Type(Expression),这两种方式是等价的。但是,C语言的强制类型转换方式存在一些问题:过于粗暴,可以在任意类型之间进行转换,编译器很难判断其正确性 难于定位,在源代码中无法快速定位所有使用强制类型转换的语句然而,强制类型转换在实际工程中几乎是不可避免的,为此C++将强制类型转换分为4种不同的类型,以提供更加安全可靠的转换。强制类型转换 说 明 static_cast原创 2020-09-10 21:52:19 · 5481 阅读 · 0 评论 -
MFC 调试代码出现“error C3646: 未知重写说明符”的解决方法
一般在调试代码出现“error C3646: 未知重写说明符”大致有三种原因引起的错误:1、循环引用 在模块化编程中对各个对象抽象化,并为各个对象编写独立的文件文件,那么在编程过程中各个对象可能出现相互引用的情况这时候就特别容易出现“error C3646: 未知重写说明符”的情况。举个例子比如有三个文件分别A.h A.cpp,B.h B.cpp,C.h C.cpp,A...原创 2019-05-15 21:51:56 · 6366 阅读 · 0 评论 -
MFC调试代码出现“不允许指针指向不完整的类类型”的解决方法
不完整类型(incomplete type)就是缺乏足够的信息例如长度去描述一个完整的对象,前向声明就是一种常用的不完整类型例如class A; class B;只给出了声明没有给出定义,不完整类型必须通过某种方式补充完整,才能使用它们进行实例化。在一些为了避免出现循环引用、相互引用的错误(见“MFC 调试代码出现“error C3646: 未知重写说明符”的解决方法”)在头...原创 2019-05-16 09:11:57 · 2449 阅读 · 0 评论 -
MFC 多线程用户界面代码出现“file:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp Line:532”错误分析
利用Visual C++ 2015建立一个MultiThread的对话框,在此对话框基础上添加多线程用户界面线程,多线程程序命名为“UIThread”,在主线程程序MultiThreadDlg.h中添加线程变量CUIThread *pThread,然后在主线程程序MultiThreadDlg.cpp中的BOOL CMultiThreadDlg::OnInitDialog()添加pThrea...原创 2019-05-17 15:51:01 · 5310 阅读 · 1 评论 -
利用MFC编写网络程序获取主机的名称和IP时总是出现C4996的错误
如下图所示:编译程序时出现如下错误;错误提示用getaddrinfo() or GetAddrInfoW()函数代替gethostbyname函数,用inet_ntop() or InetNtop()代替inet_ntoa,若不用上述函数代替原有函数的解决方法为“打开“项目”-->“属性”-->“配置属性”-->"C/C++"-->"预处理器"-->...原创 2019-05-30 17:47:29 · 383 阅读 · 0 评论 -
“此声明没有存储类或类型说明符”错误分析
定义全局变量往往需要把变量定义在函数体外部,若此时对变量进行赋值就会出现“此声明没有存储类或类型说明符”的错误,例如一下所示:int a;a = 1;void main(void){ return true;}解决方法:全局变量或者对象可以在函数外部定义,但是变量的赋值只能在函数内部int a;void main(void){ a = 1; ...原创 2019-06-21 09:56:35 · 15506 阅读 · 1 评论 -
MFC中获取常见类句柄(视图类,文档类,框架类,应用程序类)
MFC中获取常见类句柄<视图类,文档类,框架类,应用程序类>本节为VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法:GET AppAfxGetInstanceHandle()AfxGetApp()GET Frame->View->DocumentSDI AfxGetMainWnd() ->...转载 2019-07-22 11:33:46 · 401 阅读 · 0 评论 -
“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
有 三个源文件,A.h、B.cpp、C.cpp。A.h是头文件,其中声明了三个变量a1、a2、 a3。B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件。B.cpp和C.cpp中均包含头文件 A.h。在编译时,编译能够通过,但链接时出了问题,出现”error LNK1169: 找到一个或多个多重定义的符号“的错误。经过分析,确定了这是由于两个实现文件中重复包含了头文...转载 2019-07-23 09:44:46 · 502 阅读 · 0 评论 -
错误 C4430 缺少类型说明符 - 假定为 int, 注意: C++ 不支持默认 int,解决方法
用C++在编写一些大型的工程项目,当项目中的文件比较多尤其是.h文件比较多时,经常会出现“错误 C4430 缺少类型说明符 - 假定为 int, 注意: C++ 不支持默认 int,解决方法”的错误提示这类错误一般是头文件相互包含问题,比如“如果存在两个类的头文件a.h和b.h,在a.h中有这样的语句:#include"b.h",在b.h文件中有这样的语句:#include...原创 2019-08-09 10:09:26 · 20529 阅读 · 4 评论 -
sizeof()函数在自定义函数中不能正确使用分析
在自定义的函数void SinglyLinkedCircular<T, ArraySize>::WriteElement(T array[], UINT ValueElement)中获取数组array的长度,但是不能够正常的获取数组的长度,函数定义如下:void SinglyLinkedCircular<T, ArraySize>::WriteElement(T a...原创 2019-04-26 17:35:15 · 1084 阅读 · 0 评论 -
MFC编程添加文件路径出现“通用字符名的格式不正确”错误提示的解决方法
CFile txtfile;CFileException fileException;txtfile.Open(_T("C:\Users\Administrator\Desktop\lidar.txt"),CFile::modeReadWrite|CFile::modeCreate,&fileException);定义一个CFile对象txtfile,建立一个lidar.txt文件...原创 2019-03-26 15:33:25 · 10282 阅读 · 2 评论 -
CListBox:删除列表框的内容
利用列表框(CListBox)显示内容,采用MFC帮助文档实例删除列表框的内容,发现并不能彻底删除,解决方法如下:MFC关于列表框(CListBox)删除的实例:for (int i = 0; i < m_myListBox.GetCount(); i++){ m_myListBox.DeleteString(i);}运行这段代码发现总有一个字符串不能被删...原创 2019-03-01 10:26:00 · 939 阅读 · 0 评论 -
基于CAsyncSocket类模拟TCP网络传输之客户端
本例程对应的服务端请看https://blog.csdn.net/qq_34911636/article/details/88254711本例程通信的流程和操作请看https://blog.csdn.net/qq_34911636/article/details/88256403编译环境:系统:WIN7,Visual C++ 2015,创建ClientDlg对话框应用程序1、基于MFC...原创 2019-03-06 11:03:01 · 3706 阅读 · 1 评论 -
基于CAsyncSocket类模拟TCP网络传输之服务端
本例程对应的客户端请看https://blog.csdn.net/qq_34911636/article/details/88218891本例程通信的流程和操作请看https://blog.csdn.net/qq_34911636/article/details/88256403编译环境:系统:WIN7,Visual C++ 2015,建立一个ServerDlg的对话框程序1、基于MF...原创 2019-03-06 21:03:54 · 5016 阅读 · 2 评论 -
基于CAsyncSocket类模拟TCP网络传输
本例程对应的客户端代码请看https://blog.csdn.net/qq_34911636/article/details/88218891本来对应的服务端代码请看https://blog.csdn.net/qq_34911636/article/details/88254711编译环境:系统:WIN7,Visual C++ 2015,创建ClientDlg对话框应用程序和创建Serve...原创 2019-03-06 21:20:16 · 1280 阅读 · 0 评论 -
CAsyncSocket:send函数发送信息(CString类型字符串信息)
CAsyncSocket:利用MFC封装的Socket发送数据信息(CString类型字符串信息)出错分析代码如下:class ClientSocket : public CAsyncSocket //重新定义Socket类{public: ClientSocket(); virtual ~ClientSocket(); virtual void OnCon...原创 2019-03-04 12:48:02 · 1204 阅读 · 0 评论 -
UDP编程出错:'WSAAsyncSelect': Use WSAEventSelect() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS ...
解决方法有两种:1、项目属性->C/C++->常规,把SDL检查改成“否”,再次编译错误就没了。2、在 “stdafx.h” 文件中添加上下面这句#define _WINSOCK_DEPRECATED_NO_WARNINGS 1 (这句不要放的太下面,放上面一点不然也会报错)...原创 2019-03-16 15:25:49 · 2583 阅读 · 1 评论 -
Unicode字符CString与char *类型相互转化
CString LocalIPString= _T("127.121.100.2");char * CharIP;//声明标识USES_CONVERSION;//函数T2A和W2A均支持ATL和MFC中的字符CharIP = T2A(LocalIPString); 经过转换CharIP就是char类型的字符注意:有时候可能还需要添加引用#include <afxpri...原创 2019-03-16 15:52:32 · 583 阅读 · 0 评论 -
模拟UDP通信的发送与接收
编译环境:系统:WIN7,Visual C++ 2015,创建ClientDlg对话框应用程序和创建ServerDlg的对话框程序1、利用MFC创建一个CLidarReceiveDlg的对话框程序2、设计发送端与接收端的界面,由于UDP通信是无连接,所以同一个程序即可当发送端与可当接收端 图1、发送端与接收端的...原创 2019-03-19 09:48:20 · 1833 阅读 · 2 评论 -
MFC CIPAddressCtrl控件的使用
利用MFC进行网络通信离不开IP控件的操作,本例程基于Visual C++ 2015平台构建IP控件的使用例程1、利用MFC建立对话框程序2、在对话框界面上加载IP控件、编辑框和按键等如下图所示3、利用向导添加控件的变量和按键的响应函数添加完之后再InternetDlg.h文件中增加以下几个变量和函数 CIPAddressCtrl m_ip; //IP控件的变量(...原创 2019-02-15 16:44:07 · 4110 阅读 · 4 评论