
c++
澄澈天空
这个作者很懒,什么都没留下…
展开
-
关于VS编译通过,运行时报错的问题,c++ dlgdata.cpp 中ASSERT(FALSE)处发生异常
总结:一般是控件绑定了变量,该控件被删除后,忘记在DoDataExchange中将其对应的DDX_语句删除。只要删除就OK了,最好resource里的资源ID也一起干掉。我遇到的问题是:异常定位在dlgdata.cpp 中ASSERT(FALSE)处,解决方法:删除了资源视图中的控件,没有同步删除相应的变量与事件函数,DoDataExchange中还存在映射关系,把这些内容删除后,异常解决。以下为其他博主内容,供大家参考。近来在vc中遇到dlgdata.cpp的问题,一般情况...原创 2022-01-05 17:49:17 · 638 阅读 · 0 评论 -
VS2010 MFC 中CString转const char*
关键点是:利用string作为桥梁进行转换1.先把CString转为stringCString strTemp = _T("测试代码");string str;str =CStringA(strTemp);2.把string转为 const char*const char* str2 = str.c_str();参考链接:error C2440: “=”: 无法从“CString”转换为“const char *”_fengdingha的专栏-优快云博客...原创 2021-10-21 14:45:03 · 297 阅读 · 0 评论 -
MFC 中EditControl实现换行
1.C下是使用 \n 回车换行。2. 在MFC下使用 \r\n。原创 2021-08-16 15:50:26 · 813 阅读 · 0 评论 -
C++ MFC 中使用GDI绘图pDC 是nullptr 的异常处理
1. 因为DC资源是有限的,用完之后需要释放。2. 释放DC资源1)ReleaseAttribDC() 释放hAttribDC.2) ReleaseDC()和DeleteDC()释放hDC.3) 自己创建的DC使用DeleteDC().4) 使用GetDC(),获得的DC使用ReleaseDC(). 示例: CDC* pDC = GetDC(); ReleaseDC(pDC);综上,如图的异常需要释放使用的DC。...原创 2021-08-07 16:39:05 · 652 阅读 · 0 评论 -
0xC0000005: 读取位置 xxx时发生访问冲突
发现一篇写的比较好的文章,记录一下~Bjarne Stroustrup老爷子说过:“C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.”最近的工程时不时的出现0xC0000005: 读取位置 xxx时发生访问冲突,导致崩溃。先看看下面的程序:#include<iostream>#include <.转载 2021-05-08 11:57:03 · 14689 阅读 · 1 评论 -
VS 2010 c++ MFC 如何显示调用DLL中的函数
本文主要记录,如何调用第三方动态库DLL,不通过隐式调用,没有.h文件和.lib文件;但已知函数的接口定义,DLL中方法的名称以及参数类型,接下来讲解的是如何让其中的方法为我们所用,以下是详细步骤:1.加载DLL HINSTANCE hdll = NULL; CString dllPath = "DLL所在的路径"; hdll = LoadLibrary(dllPath + _T("Test.dll")); if (hPDdll == NULL) { printf("原创 2021-01-15 11:47:24 · 849 阅读 · 0 评论 -
C++ 静态分配与动态内存,内存释放的问题
1.什么是静态数组(静态分配)?静态数组的长度是固定的,不能根据应用程序的需要改变,而动态内存分配可满足此需求。这样编译器在编译阶段就知道该为这个数组分配多少内存了,这就叫静态分配。2.什么是动态内存?在编译时,内存大小未知,需要根据实际情况进行内存分配。所以编译阶段编译器无法知道需要为该数组分配多少内存,只有在运行的时候才能确定,所以这就需要运行时为该数组动态分配内存。3.关于两者释放的问题?1)静态分配静态分配的内存在栈里,每进入一个函数时都会建栈,栈里会存放函数用到的原创 2021-01-07 15:50:39 · 1193 阅读 · 0 评论 -
vs2010 C++ mfc Cstring转 const char *
本文中需要使用fopen()函数读取文件,然而我的路径是Cstring类型,因此,需要转换一下类型完整代码如下: FILE *f_raw_in = NULL; //Cstring 转 const char * CString imagePath = "c:\test\test.jpg"; string strpath = CT2A(imagePath); const char * filepath = strpath.c_str(); if ((f_r原创 2021-01-07 10:27:55 · 419 阅读 · 0 评论 -
c++ 把byte[]中的数据写入bin\txt文件中
1.保存bin文件 int size = 1000; BYTE* data = new BYTE[size]; memset(data,0,size); CString Path = _T("..\test.bin"); FILE* file1; if (_wfopen_s(&file1, Path.GetBuffer() , _T("wb+")) == 0) { fwrite(data, 1, size, file1); fclose(fi原创 2021-01-06 17:04:10 · 2275 阅读 · 0 评论 -
引用JsonCPP库发生的问题及解决方法
在使用jsoncpp库的时候产生异常:1.使用jsoncpp-src-0.5.0版本2.按照步骤配置好后,编译出现json静态链接错误:msvcprtd.lib(MSVCP100D.dll)3.原因:因为之前在编译生成lib_json.lib时我们选择了Multi-threaded Debug (/MTd)的运行时库。所以我应该在JsonTestApp下配置如下:工程(Project)->属性(Properties)->配置属性(Configuration Propert原创 2020-08-20 19:55:18 · 1668 阅读 · 0 评论 -
c++ 使用Jsoncpp解析json
什么是JSON?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要对VS2010中使用Jsoncpp解析json的方法做一下记录。Jsoncpp是个跨平台的开源库,下载地址:http://sourceforge.net/projects/jsoncpp/。解析json的第一步是先导入jsoncpp库,以下是详细步骤。1.从以上地址下载jsoncpp-src-0.5.0.zip->解压,我这里使用的VS2010打开json.原创 2020-08-20 19:48:06 · 1092 阅读 · 0 评论 -
[MFC] Combo Box两种模式下显示文本的设置
属性中Type默认为Dropdown,该模式下允许用于在Combo Box中输入任意文本,对Combo Box的文本设置可以直接用SetWindowText()。要想禁止用户在Combo Box中输入,而只允许选择下拉列表中提供的值,将Type设为Drop List即可。但此时不能用SetWindowText()对其设置文本,只能用SetCurSel()(即设置为选择了下拉列表中的第几项)。...转载 2020-04-02 14:58:55 · 614 阅读 · 0 评论 -
MFC线程的使用,For循环里结束线程
在一个循环体内结束线程CWinThread * DpsThread;DpsThread = AfxBeginThread(Thread, this);if (WAIT_OBJECT_0 == WaitForSingleObject(DpsThread->m_hThread, INFINITE)){ return 0;}原创 2020-04-02 14:49:30 · 614 阅读 · 0 评论 -
MFC中得到2个SYSTEMTIME时间差的函数
需要计时开始的地方SYSTEMTIME systemStart; GetLocalTime(&systemStart);计时停止的地方SYSTEMTIME sysTime_End;GetLocalTime(&sysTime_End);COleDateTime dTimeS(systemStart);COleDateTime dTimeF(sysTime_End);...原创 2020-04-02 14:43:19 · 1009 阅读 · 0 评论 -
关于计时的操作
头文件#pragma once// 精确获得算法处理时间的类(毫秒量级)class DT_Time{ public: DT_Time(); // 计时开始 void TimeStart(void); // 计时结束 void TimeEnd(void); // 获得耗时(单位:毫秒) double GetElapseTime(void); CSt...原创 2020-04-02 14:35:35 · 261 阅读 · 0 评论 -
C++:实现socket通信(TCP/IP)实例
首先声明,博主之前从来没有写过通信方面的东西,这次之所以写这个是因为项目需要,因此本文主要介绍一个使用C++语言及Socket来实现TCP/IP通信的实例,希望可以帮助入门者。一、什么是TCP/IP? TCP提供基于IP环境下的数据可靠性传输,事先需要进行三次握手来确保数据传输的可靠性。详细的博主不再赘述,感兴趣的朋友可以去search一下。...转载 2020-03-07 16:17:05 · 474 阅读 · 0 评论 -
记录c++中转换16进制的字符串为int类型
代码如下:int CStringHexToInt(CString str){ int nRet = 0; int count = 1; for (int i = str.GetLength() - 1; i >= 0; --i) { int nNum = 0; char chTest; chTest = ...原创 2020-01-17 14:49:08 · 467 阅读 · 0 评论 -
c++ 操作xml , CMarkup库 的使用
cmarkup是把整个xml文件作为字符串载入内存,再利用字符串类提供的函数进行访问,MFC环境下是利用CString,若不使用MFC,则需要增加编译预定义#define MARKUP_STL以使cmarkup 使用stl的string类创建xml第一步:根据自己的需求,定义好想要保存的数据格式,我这里要保存的格式如下:<? Xml version=\”1.0\” encod...原创 2020-01-06 14:53:34 · 937 阅读 · 0 评论 -
关于VS2015 编译中出现的错误,记录一下
1.编译工程出现以下错误:c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared d...原创 2020-01-06 14:26:04 · 1004 阅读 · 0 评论 -
MFC 获取本机IP、网络ip和物理地址
1.获取本地IPCString CNet::GetLocalIP(){ WSADATA wsaData; int err = WSAStartup(MAKEWORD(2, 0), &wsaData); if (err != 0) { return ""; } char szHostName[MAX_PATH] = {...转载 2019-12-31 10:36:34 · 1878 阅读 · 0 评论 -
c++ MFC 如何实现在List Control中编辑单元格数据
c++中如何编辑单元格中的数据,有以下步骤:1)在资源视图对话框中>>拖放一个List Control控件>>添加变量public: CListCtrl ParaList;//显示数据的list列表变量2)头文件添加两个变量CMFCMaskedEdit* pCurEdit;CMFCMaskedEdit m_Edit_Value;pCurEd...原创 2019-08-21 09:37:31 · 3052 阅读 · 1 评论 -
C++中 GetModuleFileName()函数 获得程序当前的运行目录
函数作用:在开发软件的过程里,经常需要把数据保存到当前执行文件路径下面,或者读取当前执行文件路径下的一些配置信息。这时就需要从当前模块里获取所在的目录路径,以便进行固定的位置操作文件。要解决这个需求,就需要调用API函数GetModuleFileName来获取模块所在的路径。函数原型:DWORD WINAPI GetModuleFileName( HMODULE hMo...转载 2019-07-22 16:23:51 · 1045 阅读 · 0 评论 -
c++ MFC 在类向导中找不到Radio-button 控件ID,无法添加变量的异常
如果添加Radio控件无法在类向导中找到控件ID,进行如下操作:选中Radio-button控件---属性---Group(指定基于Tab键顺序的一组控件中的第一个控件)---设置为true。...原创 2019-07-11 09:37:48 · 1599 阅读 · 1 评论