C++
Wancho
这个作者很懒,什么都没留下…
展开
-
使用STL的copy
STL中的<algorithm>有copy和copy_n等函数,用于对数组和容器拷贝用法是将对应的来源source和目的地destination的迭代器iterator,如果你使用的是copy_n还需要指定拷贝的长度count,将其逐一填入形参如果是在Windows环境下,你还需要使用模板类stdext::checked_array_iterator来包装你的目标数组,它被包含...原创 2019-11-05 18:05:12 · 273 阅读 · 0 评论 -
memcpy被卡住了
昨天遇到了一件令人很疑惑的情况。我为系统封装新的CameraLink采集卡SDK,如往常一样,调用Grab()开始采集,然后FrameReceived()被SDK回调,我在里面使用了memcpy()复制图像数据供程序使用。接下来,问题就发生在我调用SDK提供的函数修改了采集图像的大小之后,这时,我再次调用Gtab(),FrameReceived()被回调,但它卡住了,在memcpy()这里卡住了,...原创 2019-10-15 17:21:54 · 2721 阅读 · 0 评论 -
MSVC在窗口程序 中创建 控制台
//1. 首先调用AllocConsole创建一个控制台窗口 AllocConsole(); //2. 但此时调用cout或者printf都不能正常输出文字到窗口(包括输入流cin和scanf), 所以需要如下重定向输入输出流: FILE* stream; freopen_s(&stream, "CON", "r", stdin);//重定向输入流 freopen_s(&...转载 2018-03-22 15:37:15 · 1224 阅读 · 0 评论 -
C++关于delete的使用
1. delete安全用法:void safe_release(){ void* t = m_ptr; //先赋值nullptr,再delete,可防止被在其它线程占用时,引起的错误 m_ptr = nullptr; //方便以后检查指针是否有效,亦防止再次访问无效的指针 delete t; //释放内存}2. delete[]void fun(){ ...原创 2018-02-08 18:06:44 · 4870 阅读 · 0 评论 -
SendMessage(同步)与PostMessage(异步)的区别
PostMessage与SendMessage的区别(转载) 1、PostMessage会将消息压入窗口所在线程的消息队列,然后返回;而SendMessage则不经过消息队列,SendMessage可认为是直接调用了该窗口的窗口过程,因此在我们需要获得消息处理后的返回值的时候,就要用到SendMessage。 例如:当在程序中指定如下使用:PostMessage(hWnd, WM_MSG...转载 2018-01-19 20:41:52 · 692 阅读 · 0 评论 -
Visual Studio(MFC) 警告:需要有 dll 接口由 class“XXX的客户端使用
暂时,未找到解决方法。但此警告亦未发现对项目有影响。原创 2017-05-27 10:58:35 · 3586 阅读 · 1 评论 -
[C++]中4种‘类型转换’方式
1.C++四种类型转换机制(参考)2. C++中四种类型转换方式(参考) dynamic_cast<new_type>(var) reinterpret_cast<new_type>(var) static_cast<new_type>(var) const_cast<new_type>(var)1. dynamic_cast:(...原创 2018-01-25 09:29:14 · 425 阅读 · 0 评论 -
内存映像图
内存映像图内存映像象图内容权限栈区函数中的普通变量可读可写堆区动态申请的内存可读可写静态变量区static修饰的变量可读可写数据区用于初始化变量的常量只读代码区代码指令只读1. 栈区:普通变量(非new, 非const...)2. 堆区:使用new动态分配的(或者, 其他动态分配方法)3. 静态变量区:static修饰的4. 数据区:例如, 初始化字符指针的--char*p="this is a ...转载 2018-02-01 15:10:29 · 2246 阅读 · 0 评论 -
[C++] 关于 构造函数(construction) 析构函数(destruction)中调用虚函数
在“构造函数”/“析构函数”中,调用虚函数需要通过类命调用“成员函数”通常和多继承下,对有歧义的函数,需要“类名::函数名”的方式调用,如,定义与“基类的函数”同名的函数(特别是'重写')class Animal{public: Animal() { ... }; virtual void Run() { ... } virtual void Walk(){ ... }原创 2018-02-01 15:07:03 · 1224 阅读 · 0 评论 -
关于 C++中重载、重写(虚函数)、重定义
重载overload:函数名相同,参数不同的函数(但不能通过返回值实现重载) 重写override:(可以理解重覆盖) 子类重新定义,父类中有‘相同名称’和‘参数’的虚函数(virtual); 是实现“多态的手段” 重定义redefining: 将父类中同名的函数隐藏(参数表可以不同) 总结:"函数重载"发生在类(/命名空间)内 "重写/虚函数"是"多态性"的实现方法,发生...转载 2018-01-25 10:09:15 · 771 阅读 · 0 评论