
C++专栏
文章平均质量分 89
zhuweisky
微信号:oraycn。持续专注于即时通讯、实时音视频领域。平台涉及Windows、Linux、Android、Web、信创国产软硬件平台。
展开
-
实现C++调用C#的动态库dll
在实际的项目过程中,有时会遇到在C++的项目中调用某个C#的dll来完成特定的某个功能,我们都知道,Native C++是没办法直接调用.NET平台的dll的。那有没有办法来做到这一点了?答案是肯定的。原创 2022-06-05 09:24:41 · 2614 阅读 · 0 评论 -
在.NET中使用Speex -- 音频数据编解码
Speex是一套开源的音频编解码库,最新版本还包含了回音消除和防抖动等功能,如果我们想开发语音聊天或视频会议这样的系统,Speex将是一个不错的选择。Speex是用C++开发的,直接在.NET中使用会有诸多不便,为此,我用C#将其封装,使得编解码的调用相当简单。原创 2014-08-21 16:44:18 · 4204 阅读 · 1 评论 -
纯虚函数能为private吗?
纯虚函数能为private吗? --zhuweisky 2003.04.18 我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错。比如COM正是这样做的,它的接口中几乎不会存在private的纯虚函数。那么,让我原创 2005-07-07 09:44:00 · 2759 阅读 · 5 评论 -
C++内存对象大会战
C++内存对象大会战 如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。笔者今天在这里并不是要讨论如何避免这些问题,而是想从另外一个角度来认识C++内存原创 2005-07-06 16:48:00 · 3132 阅读 · 6 评论 -
C++ 快速内存分配
C++ 快速内存分配 ――zhuweisky 2003.12.10 我们知道,C++中当我们用new在堆中创建一个对象时,会发生两件事情。首先调用operator new分配一定大小的内存空间,然后在此空间上调用构造函数以形成对象。而operator原创 2005-07-07 11:19:00 · 3406 阅读 · 5 评论 -
C++多线程面向对象解决方案
相信很多人都读过《C++沉思录》这本经典著作,在我艰难地读完整本书后,留给我印象最深的只有一句话::“用类表示概念,用类解决问题”。关于多线程编程,如果不是特别需要,大多数开发人员都不会特意去触碰这个似乎神秘的领域。如果在某些场合能正确并灵活地运用,多线程带来的好处是不言而喻的。然而,任何事物都有两面性,如果程序中引入多线程,那么我们需要谨慎小心地处理许多与之相关的问题,其中最突出的就是:资源竞争原创 2005-07-05 12:04:00 · 3855 阅读 · 1 评论 -
C++完成端口组件实现
在windows平台上,处理众多的TCP连接的机制中效率最高的是完成端口模型,关于完成端口模型的介绍可参照《Win32 多线程程序设计》(侯捷翻译)和《windows网络编程》。异步机制是完成端口的基础,完成端口模型的本质思想是将"启动异步操作的线程"和"提供服务的线程"(即工作者线程)拆伙。先看看所有TCP连接管理组件都要实现的接口 ITcpManager #ifndef ITCPMANAGER原创 2005-07-01 15:59:00 · 4936 阅读 · 0 评论 -
C++ 事件机制实现
一. 先看看事件接口和实现#ifndef IEVENT_H#define IEVENT_H/* 以下各基础设施是在C++中事件机制的完整实现,事件是面向组件开发的必要特性之一。 最开始打算用函数指针模拟事件,但由于C++中成员函数指针不能和void*相互强转,而且 typedef中不能含有模板,所以才不得已以接口继承实现。这样效果也不错 :) 创 作 者:sky 时 间:2005.06.2原创 2005-07-01 13:58:00 · 4253 阅读 · 2 评论 -
从C++向COM演进
我们要解决的问题是复用问题,我们的目标:(1) 当被复用的软件升级时,客户程序不需要重新编译。(2) 被复用的软件应该容易扩展和升级。(3) 在客户能正常使用复用组件功能的基础上,组件向客户暴露尽可能少的信息。(4) 尽可能是客户使用组件更加方便,将许多繁琐复杂的工作从客户端转移到组件内部。==》所有可以在组件内部完成的事情,决不在组件外部完成。原创 2004-08-24 13:30:00 · 2461 阅读 · 3 评论 -
RTTI及多态的实现机制
C++ RTTI及多态的实现机制 RTTI中无论是dynamic_cast还是typeid,都是只对引用和指针有效。 假设实现多态的继承体系:class Base { public: virtual void Fun() ;}class Derived ;Base* pp = new Derived() ;Derived* pp2原创 2004-08-24 13:25:00 · 4548 阅读 · 2 评论