
c++
文章平均质量分 63
CHNSturnus
这个作者很懒,什么都没留下…
展开
-
cmake的使用方法
在涉及到跨平台的开发,大家都会提及到cmake,因为用它可以更方便的生成makefile文件,同时也可以生成相应平台版本的工程文件。 cmake的IDE工具,我通过查询资料对比,发现QtCreator比较方便易用,推荐大家使用。 在windows平台和linux平台都需要安装camke工具; windows下载地址:Index of /files (cmake.org)https://cmake.org/files/ lin...原创 2021-11-25 18:02:26 · 751 阅读 · 0 评论 -
虚拟机的三种模式
虚拟机三种网络模式 虚拟机的网络形态,可以理解为,都会虚拟一个交换机,然后用不同模式去连接这个交换机。桥接模式 比如有两台虚拟机,地址是10.3.40.11/24、10.3.40.12/24;相当于这两台虚拟机的网卡分别都连再了虚拟机交换机上VMnet0。 主机的网卡地址是10.3.40.10/24;这时会有一个虚拟机网桥将主机的网卡设备连再虚拟机交换机VMnet0上,这样同一个网段,并且在同一个交换机上,三者之间的网络必然是通的。 如...原创 2021-11-15 16:05:26 · 1413 阅读 · 0 评论 -
c/c++互斥锁
ResLock.h#ifndef _RESLOCK_H_#define _RESLOCK_H_#ifdef _MSC_VER #include <windows.h>#else #include <pthread.h>#endif/*** @class ResLock** @brief lock for reading/writing shared resource in multi-threads** @version V1....原创 2021-08-23 14:33:03 · 286 阅读 · 0 评论 -
c/c++捡漏
1:int 是4个字节,可表达的取值范围是255*255*255*255=4,228,250,625 (满足时间戳的取值范围<1,625,211,930 2021-07-02 15:50:50>)。2:short是2个字节,可表达的取值范围是255*255=65535。3:windwos平台下 long型在64位机器和32位机器,都是4个字节;linux平台下long型是8个字节。4:windwos平台是小端(低字节序在低地址位表示);linux平台是大端(高字节序在低地址位表示).原创 2021-07-02 18:41:30 · 131 阅读 · 0 评论 -
Linux 编译脚本
#Makefile#Makefile Common#author zhangbCC = g++LD = ldLDSO = $(CC) -shared -nostartfilesCFLAGS = -fPIC -Wall -Wno-unused -D_REENTRANT -O2LINKFLAGS = -lpthread -lzCINCLUDE += -I. \LINKFLAGS +=LIBSMAI...原创 2021-04-09 14:27:32 · 468 阅读 · 0 评论 -
vs debug调试报错
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.解决办法:.原创 2020-08-04 10:53:09 · 669 阅读 · 0 评论 -
error:C2572 重复定义默认参数
今天上午编译的时候,函数声明的时候加了默认参数,但是编译的时候一直提示标题所述的错误,让我都开始怀疑编译器有问题,或者颠覆了我的三观,难道c++开始不支持默认参数了吗? 肯定不是这样的。报错的原因是:一个函数申明的时候有了默认参数的默认值,在定义的时候如果还带了默认值,那就会报这个错误。但是我反复检查,我写的是对的,这是常识问题了,怎么还老报错。后来我才发现,我的头文件被include了两次,头文件里没有加只编译一个的条件限制。两种方式:一:在头文件里首部加 #pargram once原创 2020-07-21 11:46:20 · 303 阅读 · 0 评论 -
c++ socket通信
socket通信是支持域名发送的,但是不能直接用域名发送,需要先解析域名,获取到实际IP地址才可以。int SendMsg(char *szMsg, int nMsgLen){ int nRet = 0; if(strlen(m_szIp) <= 0) return -1; WSADATA wsaData; int iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult...原创 2020-07-16 16:18:22 · 764 阅读 · 0 评论 -
线程创建事项
创建线程传参时,一定要注意参数的生命周期,否则,一个BUG引发的一个思考。DWORD WINAPI RegSetValueProc(LPVOID lpParameter){ return 0;}HANDLE handl_1;handl_1 = CreateThread(NULL, 0, RegSetValueProc, pParam, 0, NULL);CloseHandle(handl_1);void* SendSystemEventThreadProc(void*...原创 2020-07-10 11:44:59 · 103 阅读 · 0 评论 -
c++ 变长参数
c++在支持变长参数时,用到了三个宏,va_start、va_arg、va_end,和一个数据类型va_list。谈谈我对他们使用上理解吧va_list ptr; //首先定义一个该类型的指针va_start(ptr,parm1) //该类型指针和入参的第一个参数关联type = va_arg(ptr, tpye) //该类型指针返回一个第二个参数的值,此处做循环,这种方式不好判断什么时候结束,所以我建议用vsprintf_s替代如:char* p= va_arg(ptr, ch..原创 2020-06-13 18:28:19 · 814 阅读 · 0 评论 -
windows平台注册表的读写操作
// RegeditThread.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#include <time.h>DWORD WINAPI RegSetValueProc(LPVOID lpParameter){ while (true) { Sleep(1); time_t lt = time(NULL); char szl...原创 2020-06-05 17:10:29 · 230 阅读 · 0 评论 -
c++动态库调用注意事项
#ifdef _MSC_VER#include <windows.h>#include <direct.h>#define get_function_address(x, y) GetProcAddress(x, y)#define load_dynamic_library(x) LoadLibrary(x)#define free_dynamic_library(x) FreeLibrary(x)#define ...原创 2020-06-03 18:07:35 · 285 阅读 · 0 评论 -
Linux下编译报错,游离问题
1:1: error: stray ‘\377’ in program1:1: error: stray ‘\377’ in program上述报错,不是代码的问题,是文本内容格式的问题,windows下正常,但是linux下编译就报错。解决方式:1:在Windows上新建一个文本文件2:将源码拷贝到文件文件3:将文本文件另存格式为ASN1格式4:将文本文件改名为工程文件就好了...原创 2020-06-02 14:06:15 · 355 阅读 · 0 评论 -
字节、二进制、十六进制转换输出
//将字节转换成二进制输出std::string ToBinaryString(const unsigned char* buf,int len){ int output_len = len*8; std::string output; const char* m[] = {"0","1"}; for(int i = output_len - 1,j = 0; i >=0 ; --i,++j) { output.append(m[((un...原创 2020-05-30 17:22:31 · 436 阅读 · 1 评论 -
时间显示和耗时统计
每次涉及到时间问题,我都需要查资料参考,这次刻意的记录一下,也给大家分享下: #include <time.h>#include <sys/timeb.h> //显示日期 time_t lt; lt = time(NULL); struct tm *pStTm; pStTm = localtime(<); printf("pStTm = %s \n", asctime(pStTm)); //统计...原创 2020-05-26 10:31:18 · 350 阅读 · 0 评论 -
系统目录重定向
windows平台下 vc开发中,大家应该会到系统目录重定向问题。如:64位操作系统下,32位的程序,要访问system32目录,系统会重定向到目录syswow64下。微软提供了两个API可以关闭和开启 PVOID OldValue; if (!Wow64DisableWow64FsRedirection(&OldValue)) { return R_FALSE; } //...原创 2020-05-26 09:53:48 · 335 阅读 · 0 评论 -
c++ vector元素删除注意事项
STL提供的模板容器vector,元素删除时,很容易导致程序崩溃。由于我已经遇到过两次了,所以记录一下。附代码:vector<string>::iterator itor;for (itor = vc_appInfo.begin(); itor != vc_appInfo.end();){ if (itor->find(pch...原创 2020-04-26 15:46:00 · 409 阅读 · 0 评论