c++
文章平均质量分 50
以千
这个作者很懒,什么都没留下…
展开
-
c++智能指针的使用
1.shared_ptrmake_sharedshared_ptr 允许多个指针指向同一个对象unique_ptr 独占所指向的对象weak_ptr 弱引用返回类指针shared_ptr<Foo> factory(T arg){ return make_shared<Foo>(arg);}void func(T arg){ shared_ptr<Foo> p = factory(arg);...原创 2021-12-08 15:58:07 · 1012 阅读 · 0 评论 -
vs release设置可调试
Release模式下调试需要设置:1.项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4.链接器 -〉调试 -〉生成调试信息 选 是 (/DEBUG)...原创 2021-10-29 13:46:32 · 1118 阅读 · 0 评论 -
vector使用
1.遍历vector<int>::iterator it = v.begin();for(; it != v.end(); ++it){ cout<<(*it)<<" ";}2.查找InfomFind = Info("xx", "yy");vector<Info>::iterator itTmp = find(dataVector.begin(), dataVector.end(), mFind);class Info{pu原创 2021-07-28 15:34:16 · 109 阅读 · 0 评论 -
c++中的作用域
1. C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。2.从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。静态局部变量具有局部作用域。它只被初始化一次,从第一次初始化直到程序运行结束都一直存在,他和全局变量的区别在于全局变量对所有的函数都是可见的,而静态局部变量只对定义自己的函数原创 2021-06-02 16:29:59 · 6585 阅读 · 1 评论 -
vs2015常见问题和操作
1.kits\8.1\include\um\winsock2.h(136): error C2011: “fd_set”:“struct”类型重定义vs2015 项目->属性->c/c++->预处理器->预定义器定义添加WIN32_LEAN_AND_MEAN2.VS断点提示:当前不会命中断点。还没有为该文档加载任何符号。3. 添加项目依赖在引用下面添加即可...原创 2021-03-31 11:17:28 · 439 阅读 · 0 评论 -
为什么用补码表示负数, 为什么负数比正数多1?
(1)无符号16位的范围0000 0000 0000 0000 到 1111 1111 1111 1111无符号16位整型数据的取值范围是0到65535。(2)有符号16位范围正数:0000 0000 0000 0001 到 0111 1111 1111 1111十进制数为1到32767负数1000 0000 0000 0000 到1111 1111 1111 1111...原创 2020-01-14 14:41:18 · 7760 阅读 · 5 评论 -
共享内存
共享内存<1>共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝。<2>为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间。进程就可以直接读写这一块内存而不需要进行数据的拷贝,从而大大提高效率。<3>由于多个进程共享一段内存,因此也需要依靠某种同步机制。实现...转载 2019-12-25 14:13:41 · 418 阅读 · 0 评论 -
vs2015 vc14编译libcurl
1.下载源码,解压到D盘https://curl.haxx.se/download.htmlhttps://github.com/curl/curl/releases?after=curl-7_55_12. 下载openssl 和 ssh2https://windows.php.net/downloads/php-sdk/deps/下载之后, 解压到D盘, 名称如下...原创 2018-12-10 15:46:59 · 877 阅读 · 1 评论 -
wxString和char*互转, find, substring
1.wxString转char*const char* cs = wxStr.mb_str(wxConvUTF8);2.char* 转 wxStringwxString mystring(dataPtr, wxConvUTF8);3.find函数 都没有空格的情况下 {"errcode":0,"errmsg":"ok","access_token": "accesst...原创 2018-12-13 09:30:42 · 1984 阅读 · 0 评论 -
vector的遍历
//liyang test begin 20180731// for (int t =0; t < vectorFacsID.size(); t ++) {// // int d = vectorFacsID[t];// ACE_DEBUG((LM_NOTICE, "getConf...原创 2018-07-31 15:49:07 · 346 阅读 · 0 评论 -
std::vector的释放
转自:https://www.cnblogs.com/biyeymyhjob/archive/2012/09/12/2674004.html1.vector的内存增长vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连...转载 2018-07-31 13:15:17 · 4216 阅读 · 0 评论 -
VS2008 C++ 项目怎样添加“依赖”、“库目录”和“包含目录”
1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。 (等同于“#pragma comment(lib, "winsock.lib") ”语句) 2. 添加库(Libs)文件目录 方法 1:[解决方案资源管理器]“项目->属性->配置属性->转载 2013-10-08 10:12:37 · 525 阅读 · 0 评论 -
ini文件读写
LPTSTR lpPath = new char[MAX_PATH]; strcpy(lpPath, "D:\\IniFileName.ini"); WritePrivateProfileString("LiMing", "Sex", "Man", lpPath); //会创建相应文件WritePrivateProfileString("LiMing", "Age", "20",转载 2013-09-27 15:36:40 · 517 阅读 · 0 评论 -
智能指针
当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时转载 2013-10-16 11:02:30 · 422 阅读 · 0 评论 -
sprintf
int sprintf( char *buffer, const char *format, [ argument] … );参数列表buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。[argument]...:可选参数,可以是任何类型的数据。返回值:字符串长度(strlen)相关函数int sprintf_s(char *buff转载 2013-10-16 13:22:46 · 530 阅读 · 0 评论 -
疑问
ACE_DEBUG(( LM_DEBUG, "%T %s", line ));原创 2013-10-16 14:09:56 · 433 阅读 · 0 评论 -
ace日志多种输出方式
初学ACE,将自己的一些总结放在这里与大家分享,希望能有所帮助。不当之处恳请大家指正。1. 输出到stderrACE输出的默认方式,将日志输出到控制台。如果希望从其他的重定向方式切换到stderr,可以采用如下的方式。1 ACE_LOG_MSG->open (0, ACE_Log_Msg::STDERR);2 ACE_DEBUG ((LM_INFO, ACE_TEXT ("转载 2013-10-17 09:55:53 · 874 阅读 · 0 评论 -
ace日志详细解读
ACE_DEBUG介绍及日志输出ACE_DEBUG 常规的一些输出消息 ACE_ERROR 会提供程序出错的一些低级消息2个宏的用法上是一致的 ACE_DEBUG(错误级别,"格式串",变量1...变量N) 其中部分错误级别系统定义如下: LM_SHUTDOWN = 01,系统死机级别 LM_TRACE = 02,跟踪级别 LM_转载 2013-10-17 10:21:15 · 1009 阅读 · 0 评论 -
临界区
函数 EnterCriticalSection 和 LeaveCriticalSection 声明如下:?123456WINBASEAPI VOIDWINAPI EnterCriticalSection( __inout LPCRITICAL_SECTION lpCriticalSection转载 2013-11-21 11:29:14 · 900 阅读 · 0 评论 -
为什么添加工程依赖
为什么添加工程依赖?你用到了一个其他工程里的函数.所以你用路径#include “commom/ok/ok.h”,如果这个头文件中有函数在.cpp中实现了.你只引用了这个头文件而不用add file to your project将此.cpp文件添加到你的工程中,你是不能成功编译通过的。所以你用add file将这个.h,.cpp加到了你的工程。开始编译,发现还是编译不过,因为runjs.原创 2014-01-02 16:15:38 · 687 阅读 · 0 评论 -
multimap的存储顺序研究
#include #include using namespace std; int main(int argc, char* argv[]){ std::multimap record; record.insert(make_pair(5,2)); record.insert(make_pair(2,1)); record.insert(make_pair(1原创 2014-01-22 16:01:35 · 1919 阅读 · 0 评论 -
lib和dll 动态链接库 静态链接库 等的介绍
转自:http://www.cppblog.com/amazon/archive/2009/09/04/95318.html共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库st转载 2017-12-26 15:15:57 · 129 阅读 · 0 评论 -
集成CEF的坑和解决办法
1.把CEF封装成一个dll. 在调用程序退出的时候, 调用CefShutdown就崩溃?解决办法: 把cef相关的库, 换成release版本试试. 2.调用dll时, 程序崩溃提示livcef.dll模块加载失败?看看资源文件是不是粘贴过来了.3.cef启动后一直白屏解决方法:查看在CefInitialize()之前是否有应用程序创建实例代码,把cef初始化程序放在创建...原创 2018-01-03 16:44:15 · 7269 阅读 · 0 评论 -
指针数组,数组指针
这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4]转载 2013-08-29 10:30:57 · 407 阅读 · 0 评论