C++
一块红布1
这个作者很懒,什么都没留下…
展开
-
跨平台读写锁
class CMyRWLock{public: CMyRWLock(); ~CMyRWLock(); void readLock(); bool tryReadLock(); void writeLock(); bool tryWriteLock(); void unlock();private:#ifdef _WIN32 void addWriter(); void removeWriter(); unsigned long tryReadLockOnce(); HA.原创 2021-01-18 16:36:04 · 292 阅读 · 0 评论 -
跨平台Event
#pragma once#ifdef _WIN32#include <Windows.h>#else#include <pthread.h>#endifclass CMyEvent{public: CMyEvent(bool autoReset = true); ~CMyEvent(); void set(); void wait(); bool wait(long milliseconds); void reset();private:.原创 2021-01-18 16:31:57 · 177 阅读 · 0 评论 -
linux 查找内存异常问题
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")原创 2020-11-26 15:03:41 · 550 阅读 · 0 评论 -
子类指针指向父类和父类指针指向子类
父类指针指向子类:符合正常设计模式,符合多态,程序正常运行子类指针指向父类:违背设计模式,程序异常子类指针指向父类指针,父类又是指向子类的指针:可以使用dynmic_cast进行运行时类转换,将指向子类的父类指针指向子类指针,程序正常运行...原创 2020-07-20 16:00:49 · 1040 阅读 · 1 评论 -
TCP 结构体粘包算法
struct HEADER{ char szMark[11]; DWORD uSSRC; ULONGLONG useqId; DWORD utotalPacketSize; DWORD unowPacketSize; HEADER() { strcpy(szMark...原创 2020-05-06 10:08:18 · 237 阅读 · 0 评论 -
Visual Studio 2013 KEY(密钥)
Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9Visual Studio Premium 2013 KEY(密钥):FBJVC-3CMTX-D8DVP-RTQCT-92494Visual Studio Professional 2013 KEY(密钥): XDM3T-W3T3V-MGJWK-8BF转载 2017-03-24 11:01:06 · 641 阅读 · 0 评论 -
windows下查询端口是否被占用
windows下的一个查询端口是否被占用的函数,若端口被占用,则输出占用该端口的进程。若有问题和宝贵意见,还请不吝赐教。bool CheckPortState( IN unsigned num){PMIB_TCPTABLE_OWNER_PID pTcpTable;pTcpTable = new MIB_TCPTABLE_OWNER_PID;//获取所需要的内存大小DWORD转载 2017-04-13 22:09:34 · 952 阅读 · 0 评论 -
老生常谈,正确使用memset
原文转自:http://blog.csdn.net/my_business/article/details/40537653前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在memset的使用上,虽然问题本身显而易见,但当处于几十万行代码量级中时,就变得不太那么容易定位了。本文归纳了下使用memset几个需要注意的地方,虽然转载 2017-06-17 11:50:47 · 2490 阅读 · 0 评论 -
C++操作Windows WIFI
本文转自:http://blog.csdn.net/freeape/article/details/45954309实现功能 无线网卡列表 无线热点扫面 无线连接(有密码,配置文件连接方式) 无线断开 重命名本地无线名(两种方式) 删除无线配置文件 开启和关闭无线网卡Native转载 2017-09-19 15:56:04 · 8397 阅读 · 0 评论 -
空类所占内存的大小
成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,类所占内存的大小不包括成员函数的大小,虚拟成员函数除外。同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实转载 2017-12-21 14:05:43 · 2027 阅读 · 0 评论 -
WebSocket++ 和 VS2013 编译指南
1.编译准备:【一】下载CMake并安装 https://cmake.org/download/【二】下载boost源码并编译 我用的boost_1_67。【三】下载openssl库 https://www.npcglib.org/~stathis/blog/precompiled-openssl/【四】下载websocket++源码 https://github.com/zap...原创 2018-08-04 12:18:20 · 2151 阅读 · 0 评论 -
string unicode utf8 ansi之间的转换
std::string UnicodeToUTF8( const std::wstring& str ){ char* pElementText; int iTextLen; // wide char to multi char iTextLen = WideCharToMultiByte( CP_UTF8, 0, ...原创 2018-11-29 14:01:40 · 713 阅读 · 0 评论 -
屏幕坐标转换
bool SrcRectToDstRect(const RECT& srcRect, int nSrcW, int nSrcH, RECT& desRect, int nDesW, int nDesH){ if (nSrcW > 0 && srcRect.left >= 0 && srcRect.right >= 0) ...原创 2018-11-29 14:03:15 · 385 阅读 · 0 评论 -
MemoryPool内存池实现
#ifndef __MEMORY_POOL_H__#define __MEMORY_POOL_H__#include <list>#include <malloc.h>template<class T>class MemoryPool{ typedef enum{USED, IDLE}STATE_TYPE; typedef struct _ST...原创 2019-05-21 17:45:33 · 329 阅读 · 0 评论 -
MD和MT区别
MD(d)、MT(d)编译选项的区别1、编译选项的位置以VS2005为例,这样子打开:1) 打开项目的Property Pages对话框2) 点击左侧C/C++节3) 点击Code Generation节4) 右侧第六行Runtime Library项目2、各个设置选项代表的含义编译选项包含静态转载 2017-02-07 21:22:17 · 9030 阅读 · 0 评论 -
C++ IPv4与IPv6的兼容编码
这里不再对IPv6 socket相关编程的基础知识进行讲解,只提供一个IP协议无关的服务端和客户端的代码,仅供参考。服务端代码:[cpp] view plain copy #include #include #include #include #include #include #include #include using转载 2016-12-24 15:01:13 · 525 阅读 · 0 评论 -
C++标准模板库
作为C++标准库相当重要的一部分,STL库提供一系列组件操作。它主要可以分为容器、迭代器、基本算法、函数对象以及内存分配器和配接器六个部分。整个STL库的代码都采用模板函数以及模板类的方式实现,具有高度的通用性。对于传统的应用程序来讲,模板库支持并且倡导一种新的编程风格,即称为泛型编程思想,以通用的模板方式来编写应用程序中的数据结构与算法。16.1 STL常见容器C++标准S转载 2016-05-26 15:24:23 · 3455 阅读 · 0 评论 -
CString用法大全
VC:CString用法大全列表形式的如下:CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456");CString csStr2(csStr);CString( TCHAR转载 2016-05-27 16:09:57 · 1867 阅读 · 0 评论 -
CFileFind类的使用总结(转)
CFileFind类的使用总结2007-7-71、CFileFind类的声明文件保存在afx.h头文件中。2、该类的实现的功能:执行本地文件的查找(查找某个具体的文件,查找某类文件x*.x*,查找所有文件*.*)3、CFileFind类是CGopherFileFind和CFtpFileFind类的基类。4、CFileFind类的构造函数::CFileFind()和关闭函转载 2016-06-03 11:53:46 · 982 阅读 · 0 评论 -
操作配置文件API函数
配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAp转载 2016-06-08 13:09:19 · 427 阅读 · 0 评论 -
C++的Json解析库:jsoncpp和boost
转自:http://blog.csdn.net/hzyong_c/article/details/7163589JSON(JavaScript Object Notation)跟xml一样也是一种数据交换格式,了解json请参考其官网http://json.org,本文不再对json做介绍,将重点介绍c++的json解析库的使用方法。json官网上列出了各种语言对应的json解析库,作者仅转载 2016-06-08 16:06:07 · 677 阅读 · 0 评论 -
Media player控件常用属性
属性/方法名:说明: [基本属性] URL:String;指定媒体位置,本机或网络地址uiMode:String;播放器界面模式,可为Full, Mini, None, InvisibleplayState:integer;播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪enableC转载 2016-07-02 14:16:09 · 726 阅读 · 0 评论 -
DestroyWindow函数解析
DestroyWindowMSDN上的解释:This function destroys the specified window. The function sends a WM_DESTROY message to the window to deactivate it and removes the keyboard focus from it. The function a转载 2016-07-26 09:16:46 · 1153 阅读 · 0 评论 -
DuiLib库 下载最新SVN地址
以前的duilib库地址SVN下了半天结果失败于是去找到了新地址https://github.com/duilib/duilib.git操作步骤跟以前一样。另外推荐一个学习duilib库的博客http://www.cnblogs.com/Alberl/p/3341956.html非常好的入门资源原创 2016-07-05 12:53:14 · 745 阅读 · 0 评论 -
BasicExcel 中文路径问题
load 函数加载中文路径失败问题解决方法:CString m_csDeviceFile("E:\\新建文件夹\\1.xls");std::string xlsFileName;WToM(m_csDeviceFile, xlsFileName);//自己实现的WideCharToMultiBytestrncpy(buf, xlsFileName.c_str(), xlsFi原创 2016-09-12 18:46:26 · 1456 阅读 · 0 评论 -
msvcprtd.lib(MSVCP90D.dll) : error LNK2005
工程使用了第三方库astt.lib, astt.lib已经在linker->input->additional dependencies中添加;Runtime library为/MDd, LIBCPMT.LIB,LIBCPMTD.LIB在ignore specific library中添加。 出现的错误如下:1>Linking...1>msvcprtd.lib(MSVC转载 2016-09-01 11:54:16 · 866 阅读 · 0 评论 -
C++截取整个屏幕,并生成图片(基于MFC)
第一步:建立Windows 32控制台控制程序第二部:设置工程的属性如下:MFC的使用 --> 在共享 DLL 中使用 MFCstdafx.h#pragma once#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料#include ScreenCapture.cp转载 2016-09-20 15:58:28 · 3033 阅读 · 0 评论 -
MFC程序重启
::PostMessage(m_hWnd,WM_SYSCOMMAND,SC_CLOSE,NULL); //获取exe程序当前路径 extern CmfcTestApp theApp; TCHAR szAppName[MAX_PATH]; :: GetModuleFileName(theApp.m_hInstance, szAppName, MAX_PATH); CString原创 2016-10-24 10:08:11 · 662 阅读 · 0 评论 -
MFC 根据点画曲线
根据点画曲线:PolyBezier:point数组大小必须是4 CClientDC dc(this); POINT *point =new POINT[4];point[0].x = 0; point[0].y =200; point[1].x =40; point[1].y =140; point[2].x =80;原创 2016-09-28 16:45:40 · 2237 阅读 · 1 评论 -
DuiLib消息处理剖析
原地址:http://blog.163.com/hao_dsliu/blog/static/1315789082014101913351223/duilib官方github地址: https://github.com/duilib/duilibDuiLib核心的大体结构图如下:分为几个大部分:控件容器(本质也是控件)UI构建解析器(X转载 2017-01-03 21:09:54 · 746 阅读 · 0 评论 -
错误:count was not declared in this scope
由于C++ 1998要求 cout and endl 使用std::cout,std::endl格式,或者在程序开始申明“ using namespace std;”,不然会出现”cout was not declare this in scope“的错误#includeint main(void){ cout<<"helloworld"<<endl; retu原创 2016-04-07 17:10:37 · 12034 阅读 · 2 评论