![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 73
q472599451
这个作者很懒,什么都没留下…
展开
-
操作系统 进程,线程,协程的区别。
进程,线程,协程的区别原创 2023-01-13 11:18:54 · 610 阅读 · 0 评论 -
GDB教程
gdb 使用详细教程gcc gdb-sample.c -o gdb-sample -g在上面的命令行中,使用 -o 参数指定了编译生成的可执行文件名为 gdb-sample,使用参数 -g 表示将源代码信息编译到可执行文件中。如果不使用参数 -g,会给后面的GDB调试造成不便。当然,原创 2023-01-13 08:51:38 · 447 阅读 · 1 评论 -
C++的四种类型转换: static_cast const_cast reinterpret_cast dynamic_cast
本人之前一直使用C语言的类型强制转换,最近写C++代码比较多。在github上看到其他人的代码并没有使用C语言的类型转换,了解到C语言的类型转换在C++中是不安全的。所以整理了一下C++的四种类型转换关键字的用法。...原创 2022-08-28 18:26:37 · 110 阅读 · 0 评论 -
C++ 原子操作(atomic)
1、atomic概述所谓原子操作,就是多线程程序中“最小的且不可并行化的”操作。对于在多个线程间共享的一个资源而言,这意味着同一时刻,多个线程中有且仅有一个线程在对这个资源进行操作,即互斥访问。C++ 11 新增atomic可以实现原子操作2、非原子操作#include <thread>#include <atomic>#include <iostream>using namespace std;int i = 0;const int maxCnt转载 2022-05-26 08:46:10 · 8320 阅读 · 0 评论 -
CString——Left、Right、Find、ReverseFind
CString——Left、Right、Find、ReverseFindCString::Left(intnCount)——返回字符串前nCount个字符的字符串example: CString str(_T("Shop,车间")); str = str.Left(4);结果:str="Shop"; CString::Right(int nCount)——返转载 2013-01-15 12:13:36 · 1681 阅读 · 0 评论 -
#define、const和enum
#define、const还是enum转载自:http://blog.csdn.net/norains/archive/2009/07/21/4366530.aspx #define,const,enum:这三者有何关联?一个是宏定义,一个是静态修饰符,最后一个还是枚举类型。是不是有点像养麦皮打浆糊——粘不到一 起?如果我们将范围缩小再缩小,让三者都只局限于“固定值”原创 2013-01-11 15:09:55 · 480 阅读 · 0 评论 -
怎样用正则表达式匹配IPV4地址
写论文写累了,忽然想起以前面试时的一道题:怎样用正则表达式匹配IPV4地址?在网上找到两篇很好的英文文章,把相关内容翻译综合一下,与诸君共享。原文链接:http://blogs.msdn.com/b/oldnewthing/archive/2006/05/22/603788.aspxhttp://answers.oreilly.com/topic/318-how-to-match-ip原创 2012-11-29 10:35:03 · 32200 阅读 · 1 评论 -
游戏光枪坐标定位原理及算法
我是做游乐行业的,要研发一款射击游戏机。现在要研发一款光枪,网上能找到的光枪大部分资料都是第一代的游戏机上面用的,用的还是有家里的老式电视机,加上霸王学习机,玩的射击游戏。我们研究是新的光枪好嘛。新型光枪是主要是有两种,一种是WII光枪,原理是红外感应条,加6自由度加速度的传感器。这种是相对位置,每次都要校准,体验感比较差。另一种是摄像头加红外光点来定位。就是摄原创 2016-06-14 10:46:34 · 4027 阅读 · 7 评论 -
linux模拟键盘
#include #include #include #include #include #include #include /* struct input_event { struct timeval time; __u16 type; __u16 code; __s32 valu转载 2017-02-28 09:40:40 · 736 阅读 · 0 评论 -
ibeacon UWB GPS 空间四点定位算法
最近在研究uwb空间四点的精准定位,其实是基于RSSI原理的,蓝牙IBEACON,GPS也差不多基于这个原理三维空间的四点定位算法:已知四个基站点的坐标(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)和到未知点(x,y,z)的距离R1,R2,R3,R4所以四点定位使用矩阵求解方程的方式:其中要求的点的坐标是(x,y,z),已知的四个探针的位置为(...原创 2019-06-11 13:20:37 · 11869 阅读 · 5 评论 -
编译后,函数名改变问题。
extern 〃C〃 void —declspec( dllexport ) Funcation(int a, int b, int *c) {...} 将此函数封状在DLL中,用C++Builder编译,调用Funcation函数找不到此函数。后来使用某工具查看DLL才发现函数名被编译器改变了。成为_Funcation。后来又用VS C++原创 2013-01-16 16:34:42 · 3086 阅读 · 0 评论 -
VC++ WROD DWORD 字节大小
VC中的变量类型不是一般的多,什么BYTE, WORD, DWORD, LPARAM, WPARAM, USHORT, UCHAR...像我这样VC还处于入门级别的人很容易混淆(实事求是地讲我从来没搞明白过*^_^*)。越是这样越是从基础开始补啊,要不然到将来对VC根深入的学习时都不知道问题出在哪里。 总结一下,BYTE, WORD, DWORD和进制之间的关系,当时在Digital c原创 2013-01-18 16:47:21 · 1250 阅读 · 0 评论 -
CString转WCHAR
Try something along the following lines.. #include { CString sText; USES_CONVERSION; #ifdef UNICODE wchar_t* psText_Unicode = (LPT原创 2013-03-14 18:19:19 · 810 阅读 · 0 评论 -
防止进程重复运行
CreateMutex( NULL, TRUE, "client" ); if ( GetLastError() == ERROR_ALREADY_EXISTS ) { Application->MessageBoxA( "程序已运行", "错误", MB_OK ); Application->Term转载 2012-11-29 10:21:34 · 385 阅读 · 0 评论 -
在长字符串中提取IP地址
void getHostIP(char* hostIP,const char* sourceStr){ char nbuf[4]; int sn[4]; int i,ret,start,n,m; int runnum=0; start = 0; while (1) { runnum++; //第一个数大于255的情况 if (runnum转载 2012-11-29 10:24:41 · 3192 阅读 · 0 评论 -
串口编程
类库文件:cncomm.h。下面是简单应用的笔记:发送数据:write读数据:read打开串口:open //!串口发送数据void CCncomm_zDlg::OnOK(){ // TODO: Add extra validation here CString strSend; m_strSend.GetWindowText(strSend); c原创 2012-12-11 16:27:41 · 563 阅读 · 0 评论 -
获取windows系统时间
获取系统时间,这个方法比较简单SYTimeEMTIME Time={0};GetLocalTime(&Time);//获得当前本地时间GetSyTimeemTime(&Time);//这一个是获得格林威治时间,一般不用SYTimeEMTIME结构说明typedef struct _SYSTEMTIME { WORD wYear; //年 WORD原创 2013-01-18 16:48:35 · 4558 阅读 · 0 评论 -
dll 计时器
方法一:SetTimer(NULL, 0, 1000, (TIMERPROC)Timer2Proc);VOID CALLBACK Timer2Proc(HWND hWnd, // handle of window for timer messagesUINT uMsg, // WM_TIMER messageUINT idEvent, // timer identifier原创 2013-01-22 10:40:13 · 789 阅读 · 0 评论 -
获取GetOpenFileName多选文件名
OPENFILENAME ofn; TCHAR szOpenFileNames[80*MAX_PATH]; TCHAR szPath[MAX_PATH]; TCHAR szFileName[80*MAX_PATH]; TCHAR* p; int nLen = 0; ZeroMemory( &ofn, sizeof(ofn) ); ofn.F原创 2013-07-09 15:42:30 · 2134 阅读 · 0 评论 -
10048错误(WSAEADDRINUSE)的错误处理
这两天在工作的过程中发现基于socket的网络程序中时不时发生connect()调用失败的错误,通过获取错误码,发现是WSAEADDRINUSE(10048)的错误,MSDN的说明如下: 这种错误常常发生在bind函数中,当bind已经绑定的端口被占用后,再次绑定同一端口就会发生错误,但这一错误不影响bind的执行,换句话说,bind第二次执行并不发生错误,但是在紧接着原创 2013-07-18 10:05:02 · 3741 阅读 · 0 评论 -
Socket中如何设置连接超时
设置connect的超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(《Windows网络编程技术》原话)。使用方法与解释请见《Windows网络编程技术》。 在使用此函数前,需原创 2013-10-10 15:48:03 · 565 阅读 · 0 评论 -
C/C++头文件注释
/********************************************************************************* *Copyright(C),2010-2011,Your Company *FileName: // 文件名 *Author: //作者 *Version: //版本 *Date: //完成日期转载 2014-08-29 15:47:28 · 1444 阅读 · 0 评论 -
C++如何处理内联虚函数
当一个函数是内联和虚函数时,会发生代码替换或使用虚表调用吗? 为了弄清楚内联和虚函数,让我们将它们分开来考虑。通常,一个内联函数是被展开的。 01.class CFoo {02. 03.private:04. 05.int val;06. 07.public:08. 09.int GetVal()转载 2012-07-30 23:49:21 · 424 阅读 · 0 评论