
C++
GreenArrowMan
这个作者很懒,什么都没留下…
展开
-
Console无界面程序如何使用SetTimer
在Windows开发中免不了一些场景中是无界面的程序。但是我们又需要使用Windows API中的定时器SetTimer来进行定时处理一些任务。我们都知道Windows是消息驱动的,那定时器SetTimer的超时也是通过消息来驱动的,Console进程主线程没有消息的循环分发,Windows是不会调用我们的超时回调函数的。这种情况下,我们需要如何处理呢?我们可以主动在当前线程中添加一个消息循环,来使当前线程中的消息分发下去,从而使定时器可以正常的运行。在Demo中我创建了一个定时原创 2021-12-08 16:30:12 · 404 阅读 · 0 评论 -
dll之间共享数据
工作中遇到这么一个情况,有个公共信息dll,给几个Application使用,但是里边的信息需要跨进程共享。查了下资料,发现可以使用以下方式实现:#pragma data_seg("flag_data")int app_count = 0;#pragma data_seg()#pragma comment(linker,"/SECTION:flag_data,RWS")data_seg:数据段。使用这种方式,不但可以多个进程间共享数据,还可以限制进程只启动一次,比起IPC还是比较方便的。原创 2021-11-30 11:15:44 · 1097 阅读 · 0 评论 -
QT/C++复习要点
这是我前段时间(上半年)找工作时,着重复习的点,当然可能不是很全面,但是在面试时也覆盖了大部分,如果可以再练习下LeetCode上的习题就更好了,我就是吃了算法的亏。完整的文章发布在公众号,可以关注公众号查看完整文章,关注公众号,请扫描下面的二维码。“请扫码关注我,后续还有很多这些年保留的资源会慢慢放出来。”...原创 2019-10-30 23:14:36 · 656 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: struct std::_Wrap_alloc<class std::allocator
在win7+vs2017,Windows SDK版本号10.0.14393.0做开发时,使用std::vector的函数assign是,出现链接错误,解决方法,自己写for循环,进行赋值。原创 2018-01-22 16:16:21 · 3268 阅读 · 0 评论 -
C++ 导入导出
我们在开发时,很多时候会使用动态库或者静态库,给其他的程序调用。#ifdef xxx_EXPORTS#define xxx_API __declspec(dllexport)#else#define xxx_API __declspec(dllimport)#endif而且我们一般在库工程的vs->工程->右键属性->c++->预处理器:添加xxx_EXPORTS,这样的话就是原创 2017-05-13 10:38:29 · 1920 阅读 · 1 评论 -
cpp-netlib在VS2013下编译
cpp-netlib项目的目标是:基于最新的c++标准,提供一个易用的网络编程库。该项目使用最新的c++编译器版本及其特性。目前,该项目已经完成了一个HTTP客户端与服务端的实现、一个独立的URI库、一个网络消息框架、部份并发工具。1.下载cpp-netlib源码:http://cpp-netlib.org/2.安装cmake-gui:https://cmake.org/downloa原创 2016-06-01 16:08:33 · 3401 阅读 · 3 评论 -
std::map 如何使用结构体作为自定义键值
在使用map时,有时候我们需要自定义键值,才能符合程序的需要。比如我们需要使用自定义的结构体来作为map的键值.原创 2016-03-15 11:53:27 · 14622 阅读 · 3 评论 -
std::map 如何插入键值对
有两种方式,可以把数据放入map容器:1.map[键] = 值;直接赋值。这种方式:当要插入的键存在时,会覆盖键对应的原来的值。如果键不存在,则添加一组键值对。2.map.insert().这是map自带的插入功能。如果键存在的话,则插入失败。原创 2016-03-14 09:48:17 · 47354 阅读 · 0 评论 -
std::map 删除指定条件的元素
在C++开发中,std::map是经常使用到的容器,由键值就可以取出对应的值。在使用map时,如果想从map中删除符合某一条件的元素,应该如何操作?原创 2016-03-12 11:12:24 · 22657 阅读 · 9 评论 -
c++如何将一块内存拆分成两块内存
内存数据的拆分,在开发中有时候也会遇到。内存数据p,拆分为内存数据p1,内存数据p2.p的前半部分拷贝到p1,p的后半部分拷贝到p2。可以使用memcpy来进行数据的拷贝拼接,关键是要控制好拼接的位置:内存数据p的后半部分数据从哪个位置往p2拷贝。原创 2015-12-19 14:48:00 · 1469 阅读 · 0 评论 -
C++如何将两块内存的数据合并到一块内存
内存数据的拼接,在开发中有时候也会遇到。内存数据p1,内存数据p2,拼接为内存数据p.p1拷贝到p的前半部分,p2拷贝到p的后半部分。可以使用memcpy来进行数据的拷贝拼接,关键是要控制好拼接的位置:p2内存数据从哪个位置往p里面拷贝。原创 2015-12-19 14:28:29 · 8322 阅读 · 0 评论 -
C++ dynamic_cast const_cast static_cast类型转换
dynamic_cast: 通常在基类和派生类之间转换时使用,run-time castconst_cast: 主要针对const和volatile的转换. static_cast: 一般的转换,no run-time check.通常,如果你不知道该用哪个,就用这个。 reinterpret_cast: 用于进行没有任何关联之间的转换,比如一个字符转载 2015-03-25 17:28:19 · 752 阅读 · 0 评论