c++小技巧
文章平均质量分 57
高晓伟_Steven
wx_cangying1988的博客
展开
-
C语言宏的妙用
宏定义是 C 语言预处理指令中最常用的一种,它是一种非常重要的预处理功能。通过宏定义,我们可以将一个标识符定义为一个常量或一个表达式,然后在程序中就可以直接使用这个宏定义来代替该常量或表达式。宏定义可以简化程序的编写,提高程序的可读性。宏定义的语法如下:#define 宏名 宏体其中,宏名是宏定义的名称,宏体是宏定义的具体内容。宏定义的名称必须遵循 C 语言标识符的命名规则,宏体的具体内容可以是常量、表达式、函数调用等。在程序中使用宏定义的方法非常简单,只需要直接使用宏定义的名称即可。原创 2024-02-12 08:23:29 · 537 阅读 · 0 评论 -
Linux系统奇事【free显示内存95%但是top却看不到谁用】
1 Recv-Q堆积会占用系统内存,这部分内存用top查不出来,需要用netstat查看。2 malloc是不可重入函数, 如果重入了可能会死锁。所以信号处理函数里面不能调用malloc。3 malloc的调用有可能是间接地或者说是隐式的。所以信号处理函数应该尽可能简单, 比如只设置一个flag, 然后让其它处理流程根据这个flag来做其它事情。...原创 2022-08-05 11:07:03 · 9022 阅读 · 0 评论 -
Linux C 字符串转ipv6地址
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include<netinet/in.h>#define ip6addr "2F19:123E:1234::2:1" // colon hexadecimaltypedef union{ unsigned char ucIp6[16]; uns.原创 2021-11-23 19:40:00 · 1730 阅读 · 0 评论 -
UniCode 下 CString 转 char* 的方法
今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失。原来CString类对象GetBuffer(),后以后还是unicode编码,所以必须将宽字符转换成char类型那就必须用到一个函数 网上查了下解决方法如下: 在Visual C++.NET2005中,默认的字符集形式转载 2014-01-13 10:45:49 · 1015 阅读 · 0 评论 -
Cstring与其它类型互转
CString 头文件#include string 头文件#include CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString转载 2014-01-09 13:25:42 · 1176 阅读 · 0 评论 -
C++ 注册表编程
1.基础知识注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。分别介绍一下这三部分:(1)根键。分为5个,分别为HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG,把它们理解成磁盘的五个分区可以了。转载 2014-02-20 18:32:38 · 1024 阅读 · 0 评论 -
c++获取网卡MAC地址
#include #include #include #include #include #pragma comment(lib,"netapi32.lib") using namespace std; //#define bzero(thing,sz) memset(thing,0,sz) bool GetAdapterInfo(原创 2014-02-11 11:22:50 · 3770 阅读 · 0 评论 -
C#制作“安装和部署”时,实现软件开机启动
C#制作“安装和部署”时,实现软件开机启动 使用VS自带的安装模块可以方便的对项目进行打包,如果仔细观察的话,我们可以发现,VS制作安装包是可以操作注册表的,那么我们创建开机启动就变得简单了。 具体操作办法如下: 鼠标右键安装项目->视图->注册表 依次创建键: HKEY_CURRENT_USER\Software\Microsoft\Windo转载 2014-02-19 13:01:45 · 1523 阅读 · 0 评论 -
VS2010通过OLE操作Excel2010
我使用的语言是C++,网上有许多这方面的例子,但由于VS与Office版本的问题,都需要一些调整,下面是我在使用时遇到的一些问题集解决方法:操作步骤:a. project->add class->MFC class from typelib 导入Excel.exe,一般都在C:/Program Files/Microsoft Office/Office14路径下;b. 选中原创 2014-01-09 14:43:22 · 18850 阅读 · 12 评论 -
MFC下多线程UpdateData的使用方法
在randomDlg.h //定义用户消息,不可与系统消息冲突,所以就这样定义 //WM+USER表示用户消息,加100还是加其他值并没多大区别的 #define WM_MYUPDATEDATA WM_USER+100 在线程内//向主程序框架MainFrm发送消息 //SendMessage第二第三参数可以为其他更多的类型,不局限于此转载 2014-01-15 17:42:42 · 1537 阅读 · 0 评论 -
MFC对话框应用程序添加自定义消息
1. 定义自定义消息[cpp] view plaincopy/** * \brief 消息测试 */ #define E6100_MSG_TEST ( WM_USER + 1001 ) 2. 声明自定义消息处理函数[cpp] view plaincopy转载 2014-01-15 17:43:20 · 1189 阅读 · 0 评论 -
将16进制字符串转换为16进制数值的两种方法
方法一: 主要用到sscanf这个库函数:函数名: sscanf 功 能: 执行从字符串中的格式化输入 用 法: int sscanf(char *string, char *format[,argument,...]); //%x就是我们要格式化的类型,即输出十六进制#include int main() { char szValue[] = "原创 2013-09-12 10:47:58 · 14264 阅读 · 0 评论 -
c/c++XML读写相关
先介绍一个实用的:Mini-XML 2.6 详细说明:minixml2.6最新的版本。 嵌入式xml 解析、查找、生成、遍历 功能,全部实现是标准c,移植很容易。 最新的2.6,修改了很多bug。 这个压缩包,里下载完了,直接就可以在liunx下编译安装。 如果是在windows下的话,只需要根据readme.txt的提示,修改一个小地方,就可以运行。非常方便。-minixml2.5转载 2013-11-01 17:09:43 · 1455 阅读 · 0 评论 -
fatal error C1189
fatal error C1189: #error : Building MFC application with /MD (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD这是由于VS2005默认的MFC程序是使用动态MFC库(Use MFC in a转载 2013-12-10 14:26:48 · 1774 阅读 · 0 评论 -
关于google的protobuf在vs的release版下编译出错的解决方案
我所遇到的问题是这样的:我用protobuf在debug下是完全没问题的,但是到了release下编译和生成都没问题,只是在程序调试和运行的时候会弹出“Debug Assertion Failed”的错误,而且使用单步调试时会发现连main函数的无法进入就直接弹错了,如下图:这是因为我调用的libprotobuf.lib库为debug版导致的。解决方法为:用vs在release下编译p原创 2013-12-11 17:08:36 · 3985 阅读 · 0 评论 -
Google protobuff 安装及使用
最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googlecode.com/files/protobuf-2.3.0.zip安装: unzip protobuf-2.3.0.zipcd protobuf-2.3.0./c原创 2013-11-04 13:42:00 · 2605 阅读 · 0 评论 -
VS2010 项目属性的默认包含路径设置方法
有两种方法可以设置vs2010的默认包含路径方法一:点击“视图->属性管理器”,在打开的属性管理器中选择Microsoft.Cpp.Win32.user打开打开后将出现如下图所示:这时候就可以设置默认目录了。方法二:打开 C:\Users\Administrator\AppData\Local\Microsoft\MSBuild\v4.0目录中的 M原创 2014-01-10 10:16:03 · 45131 阅读 · 1 评论 -
CString 转换成string ---涉及UNICODDE
CString 转换成string------解决方案--------------------------------------------------------unicode:CString sz1 = L"abc";std::string sz2 = CT2A(sz1.GetBuffer()); //转化为非unicode.非unicode:CStrin转载 2014-01-13 13:23:09 · 1062 阅读 · 0 评论 -
MFC下的各种字符串类型和相互转换
MFC下的常用字符串数据类型表示的含义:L:Long 长 P:Point 指针 C:Const 常量 W:Wchar_t 宽字符 T:TCHAR STR:String 字符串在看看MFC下各种数据类型的定义: 1 typedef char *LPSTR; 2 typedef const char *LPCSTR; 3 4转载 2014-01-14 16:15:11 · 939 阅读 · 0 评论 -
C++中的文件操作
C++文件流:fstream // 文件流ifstream // 输入文件流ofstream // 输出文件流//创建一个文本文件并写入信息//同向屏幕上输出信息一样将信息输出至文件#include#includevoid main(){ ofstream f1("d:\\me.txt"); //打开文件用于写,若文件不存在就创建它原创 2013-09-12 13:48:01 · 894 阅读 · 0 评论