
C/C++
文章平均质量分 64
stephenxu111
AI技术开发者,爱好者,分享者。
展开
-
关于那个所谓的腾讯笔试题的研究
今天看见一个腾讯笔试题,正好研究了一下大内存操作和文件映射等问题。题目是:一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数算法一:分配512MB内存,每一bit代表一个整数,测试程序(VC6)如下: //一个bit代表一个数,实际上只需要4096/8=512兆的内存空间(即(4096/32)*1024*1原创 2008-05-05 18:04:00 · 3953 阅读 · 1 评论 -
Corba接口(TAO及Java客户端)测试
编译TAO相关的tao_idl.exe等程序和dll,它们都在ACE_wrappers/bin下面一个IOR串实例:IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000060000000010102cd03000000787900cd1704cdcd1b00000014010f00525354cd936c原创 2008-06-10 13:35:00 · 4567 阅读 · 1 评论 -
SQLite使用日志
最近又测试了一下内存数据库SQLite,发现功能增强了好多,比如多线程支持(用文件锁的方式实现的),并且也可以全内存化(用":memory:"的方式打开即可)了。 由于多线程的支持是通过操作系统文件锁的方式实现的,所以当以全内存数据库(即无磁盘文件)的方式打开SQLite时,就不支持多线程了,必须自行实现读写锁以互斥,推荐使用ACE读写锁。 由于SQLite的锁是文件锁的方式实现,原创 2008-10-06 17:13:00 · 8638 阅读 · 0 评论 -
编译最新的snmp++ v3.2.23
1)到snmp++官网下载最新的snmp++v3.2.23.tar.gz库,同时下载vs.net的工作空间文件msvc7.tar.gz以及加密库libdes-l-4.01a.tar.gz2)解压这三个压缩包到某个目录,注意目录结构,以使工作空间文件.sln能正确指向相对路径的源文件,应该如下:├─snmp++│ ├─src│ ├─include│ │ └─snmp_pp├─msvc│原创 2008-10-11 08:45:00 · 2460 阅读 · 1 评论 -
VC6类视图打不开
今天的VC6工程的类视图又打不开了,工程文件视图和资源视图正常。解决办法: 删除工程所在目录的ncb和clw文件。 特此记录。原创 2008-10-31 10:03:00 · 3003 阅读 · 1 评论 -
VC6 插件 visual assist x 的设置
Visual Assist x是一个很好VC插件,可以帮助更方便的编辑。安装后最好再把默认设置改一下:1)设置粘贴后格式化 2)设置行宽指示原创 2008-11-05 09:36:00 · 6430 阅读 · 0 评论 -
Ultimate toolbox实用工具类
自从基于MFC的图形库Ultimate Grid开源后,还没有好好使用过,最近项目用到Ultimate Grid,就顺带理了一下Ultimate Toolbox的实用工具类,发现真有不少好东西,列出来常用的,大家编程时可以参考: BitmapButtonDemo位图按钮,支持按下不弹起的状态BitmapMenuDemo可以放置大位图的菜单CalculatorCtrl计算器控件(还有一个模拟原创 2008-11-17 10:05:00 · 2852 阅读 · 0 评论 -
配置属性页Property Sheets使用
一般有很多配置项时,我们希望就象Windows的很多配置窗体一样,用Tab管理各个相关的属性配置项,但是如果自己用Tab控件实现的话,控制各个显示控件十分麻烦,这时我们就可以用到MFC提供的属性页Property Sheets来实现。1. 在资源中为每个Property Page(到时对应各个tab项)生成对话框模板,注意要设置Caption,到时作为Tab头,Style设为Child,Tit原创 2008-11-17 10:07:00 · 2218 阅读 · 0 评论 -
如何解决CRichEditCtrl控件在显示中文时的选择位问题
在较新版本的CRichEditCtrl控件里,中文字符和英文一样,只占一个选择位,这就导致选择操作(主要是GetSel和SetSel函数)针对中文时不正确,在网上查了一下,有人也遇到这个问题,但都没有很好的解决办法。这几天我也遇到这个问题,试验了一下,找到了一个办法。我的应用的目的是要实现滚动显示文本内容,但内容遇到关键字就要高亮显示,并将该关键字所在行的背景色改变。 #include原创 2008-11-25 09:45:00 · 1945 阅读 · 1 评论 -
MSDN内容链接不能点击
不知什么原因,有时候MSDN6.0的内容链接会变得不可点击了: 许多链接前都有了一个表示图形链接错误的小方框。正文里的连接只要点击就提示脚本错误。怎么办? 在网上查到的解决办法是,在注册表把HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/ActiveX Compatibility/{ADB880A6-D8原创 2008-11-27 14:52:00 · 1589 阅读 · 0 评论 -
ACE_Task自然退出的问题
最近解决了以前遗留的ACE问题(原来的应用退出时实际上各子线程不是自然退出,而是因为进程终止而强制退出的),高兴!特此记录一下。我们的应用使用反应器框架模式,反应器框架通过任务的消息队列和具体处理任务解耦,任务(继承自ACE_Task)线程通过getq获取消息内容并处理。原来的程序类似于下面:int My_Task::open(void* args){ activate(THR_NEW原创 2008-12-01 17:31:00 · 2749 阅读 · 0 评论 -
“天龙八部基于颜色的简易动作式外挂”的增强
最近在网上看到一篇“天龙八部基于颜色的简易动作式外挂”,不仅讲述了这种简单外挂的原理,还提供源码,于是把源码下下来研究了一下,并跟实际游戏联调了一把,发现不太实用,忍不住下手修改了一下,感觉比原来好些,于是发上来,与同好分享。 特别感谢一下原作者绿蚂蚁,另外这个外挂(实际上应该叫内挂)仅限于研究,还很不完善,请大家不要期望真的靠他打到100级:),下面是我改过的界面: 以下是我原创 2009-06-29 20:28:00 · 2975 阅读 · 0 评论 -
字节对齐的基本规则
时间一长有些规则总是会忘记,最近又碰到字节对齐问题,影响sizeof()的计算,特别把对齐原则再记下来,提醒一下自己。原创 2010-12-19 11:04:00 · 2111 阅读 · 1 评论 -
频繁new长时间后操作异常,跟debug版最大new次数限制有关!
一个VC6程序运行几天后,就发生不管new什么对象都失败的情况,可能跟 debug版new的次数限制有关!原创 2010-12-19 18:09:00 · 2955 阅读 · 1 评论 -
ACE_Time_Value使用注意事项
ACE自定义了一个重要的时间类ACE_Time_Value来管理与时间相关的数据...原创 2011-05-31 18:22:00 · 14439 阅读 · 2 评论 -
ACE_Time_Value使用注意事项(续)
ACE_Time_Value保存了两个时间属性:秒和毫秒,各自用一个32bit有符号整数来存储。ACE_Time_Value本身可以用来表达相对时间和绝对时间,用于相对时间时它表示两个绝对时间之间的差值(秒的差值和毫秒的差值,注意这两个属性是独立的),由于32bit整数最大值的限制,它们各自有自己的差值上限,大约是正负68年(用秒属性时),正负25天(用毫秒属性时)的样子。当用于表示绝对时间时,它原创 2013-06-10 17:05:06 · 10913 阅读 · 0 评论 -
sip软电话yate client的编译过程
yate项目路径 删除编译选项HAVE_DNS_NAPTR_DATA原创 2014-05-16 16:48:32 · 5918 阅读 · 4 评论 -
在应用中集成KiwiSyslog建立Windows下的集中日志系统
前一段写的一篇“建立Windows下面的syslog日志服务器”介绍了使用KiwiSyslog的一些情况,提到了在应用中集成Klog(KiwiSyslog的一个实用客户端工具)的方法。本文特地对Klog的DLL方式进行了测试,并对接口进行了封装和简化,贴出来和大家分享一下。 首先,找到Klog的3个文件:Klog.dll Klog.lib kloglib.h(我的电脑上在安装目录C:/Pr原创 2008-06-04 19:15:00 · 6547 阅读 · 0 评论 -
单元测试
1 单元测试的重要性1.1 一些错误的认识在实际的单元测试过程中总会有一些错误的认识左右着我们,使之成为单元测试最大的障碍,在此将其一一分析如下:它太浪费时间了,现在要赶进度,时间上根本不允许,或者随便做做应付领导。我是一个很棒的程序员,我写的代码肯定是没有问题的。做单元测试太烦了,直接集成,到时有问题在集成测试时肯定能发现的,实在不行在系统测试总该能发现吧。它仅仅是证明转载 2008-06-05 15:36:00 · 4005 阅读 · 0 评论 -
利用apache源码自制服务管理程序
利用apache源码自制服务管理程序 当我们开发一个后台应用时,通常没有界面,并且会把它注册成一个服务程序。但是,如果普通用户要对这个服务进行重启,关闭等操作,他必须要到控制面板-管理工具-服务那里才能进行。更重要的是,机器启动后,用户并不能明显地看到服务是否在运行等信息,所以,最好为该应用添加一个常驻托盘并能动态显示运行状况的功能(比如瑞星等杀毒程序就有这个功能)。那么,是不是我原创 2008-05-07 21:56:00 · 1422 阅读 · 0 评论 -
对《C/C++ 程序设计员应聘常见面试试题深入剖析》的勘误
上次在优快云上下载了一个 C/C++ 程序设计员应聘常见面试试题深入剖析>>文档,发现了几处错误,特此列出(请注意下面红字): 。。。。。。 试题3:写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least = MIN(*p++, b); 解答:#define MIN(A,B) ((A) MIN(*p++, b)会产生原创 2008-05-08 19:06:00 · 938 阅读 · 0 评论 -
ACE总体简介
ACE (Adaptive Communication Environment)自适应网络环境,高性能开源通信中间件首先记住这个名字:Douglas C. Schmidt 道格拉斯.施密特Washington University in St. Louis 华盛顿大学,圣路易斯分校在ACE构架中有三个基本层次:--操作系统(OS)适配层--C++包装层--构架和模式层使用ACE带来的好原创 2008-05-08 17:43:00 · 1314 阅读 · 0 评论 -
C++名人堂
真正的C++爱好者应该记住的名字:Bjarne Stroustrup"C++"之父Bruce Eckel>Stanley B Lippman>Grady BoochUML之父,OO教父GoFErich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. >Andrei Alexandrescu>P.J.原创 2008-05-08 17:55:00 · 1434 阅读 · 0 评论 -
重温编译原理
今天重新读了一下编译原理这本电子书(PDF,可在优快云下载),觉得理解一下编译过程还是比较重要的,特别是第一章 概论 对编译过程的描述和第七章 运行时环境 的描述。1 编译过程1) 预处理包括去除注释,宏替换,include文件2) 词法分析生成符号表3) 语法分析生成分析树,该树的叶子节点都是符号表中的符号(现在更趋向生成语法树,它取消了一些节点)4) 语义分析这时主要是指静态语义:包括声明和原创 2008-05-09 18:31:00 · 939 阅读 · 0 评论 -
C++使用心得
1 std::string不能和""直接比较(都会false),只能用getlength() == 0来比较其在结构中时候占4×4个字节,其中,第二个4字节是buffer指针,第三个4字节是长度2 push 结构等类型进stl容器时,必须使用拷贝构造函数(默认拷贝构造函数是位拷贝),否则会有2558等编译错误java c#把所有对象放在堆上,c++不是3 无符号数的相减不会出现负数4原创 2008-05-09 18:35:00 · 3083 阅读 · 3 评论 -
虚拟串口实现
这两天需要开发一个程序,实现把GSM的AT命令转换为CDMA的AT命令集(为了配合另一个基于GSM AT命令的第三方短信程序访问我们的CDMA Modem),考虑了一下,决定用虚拟串口的方式实现,就是我们开发一个网关程序控制Modem,同时在系统模拟一个新的串口给第三方程序使用。为节省时间(2天完成),决定采用成熟的虚拟串口程序来实现。1)使用VSPM这样的串口模拟软件这是一家国内公司开发的免原创 2008-07-22 15:11:00 · 13117 阅读 · 3 评论 -
调整ACE日志时间输出格式
ACE日志输出时用%D输出时间:ACE_DEBUG ((LM_INFO, ACE_TEXT ("%DHi Mom/n")));结果如:Thu Mar 13 2008 17:38:01.453000Hi Mom 格式不符合中文习惯,并且太长。我把源码改了一下,这样输出时间时符合中国习惯(比如:08-05-12 09:37:20.123),并且节省输出长度(Windows下只能原创 2008-05-13 19:39:00 · 3346 阅读 · 1 评论 -
C++树的实现
C++树的实现STL里面没有提供容器树的模板实现,从网上找到一个: Tree.h//tree.h 头文件 #include list>#include using namespace std; struct TreeNode; //定义一个结构体原形classTree; //定义一个类原形classIterator; //定义一个类原形原创 2008-05-14 19:16:00 · 33041 阅读 · 6 评论 -
ACE网管平台移植Linux
我们的网管平台基于ACE, ODBC,SNMP ++的,都是可以跨平台的库,但一直未进行linux下的编译测试,这是去年移植测试时记录的日志。 注意移植前先要编译好ACE, unixODBC,SNMP ++的库。 在从VC下移植到linux(用gcc编译)过程中记录的一些更改项: 1)微软windef.h文件中定义的内容linux下不可用,包括#define原创 2008-05-14 19:18:00 · 2791 阅读 · 0 评论 -
ACE环境下为应用提供Telnet服务器
当我们的应用服务运行时,通常没有界面监控运行情况,也不能动态配置一些运行参数。那么我们能不能象Linux那样,提供一个类似shell那样的命令行界面进行交互呢? 当然可以,我们利用ACE的接受器和反应器框架,可以轻易为应用服务搭建一个类shell的远程Telnet环境。 主要有两个类实现:Network_Listener 监听类,打开TCP监听端口,准备接受客户端连接Netwo原创 2008-05-14 19:20:00 · 1962 阅读 · 0 评论 -
完成端口的Win32实例及ACE实现对比
完成端口(IOC)是用来实现高性能服务的一种常用方法,主要是通过操作系统提供的异步调用功能实现IO操作,可以通过很少的线程数实现高性能的并发服务。ACE的前摄器(Proactor)模式在Windows下就是通过完成端口实现的。 1.下面是网上一个利用完成端口技术实现的高性能文件下载服务程序的源码:(用Visual C++ 6.0 SP5+2003 Platform SDK编译通过原创 2008-05-15 19:11:00 · 4531 阅读 · 0 评论 -
对轻量级C++日志类的增强
对轻量级C++日志类的增强这是网上找到的一个轻量级C++日志类的实现,主要应用了Singleton模式,我增加一个函数tmWrite,主要用来进行前面带时间的行输出。 //log.h//hujinshan@2004.1.3 Airforce Engineering University/*//CLog* CLog::_instance = NULL;原创 2008-05-13 20:00:00 · 3703 阅读 · 0 评论 -
ToDoList源码研究
ToDoList是一个“简单有效的免费任务管理软件”,它由CodeProject网站开源。你可以从官网http://www.abstractspoon.com/访问到它的最新信息。ToDoList由一名资深软件工程师维护,从软件外观设计到编码风格等,完全符合一个专业软件的风范。源码清晰易读,外部依赖少,是Windows下C++界面开发学习的典范,可用VC6打开编译,立即就可以运行。源码基于MF原创 2008-05-15 16:19:00 · 5996 阅读 · 2 评论 -
C语言陷阱和缺陷
C语言陷阱和缺陷[译序] 那些自认为已经“学完”C语言的人,请你们仔细读阅读这篇文章吧。路还长,很多东西要学。我也是……[概述] C语言像一把雕刻刀,锋利,并且在技师手中非常有用。和任何锋利的工具一样,C会伤到那些不能掌握它的人。本文介绍C语言伤害粗心的人的方法,以及如何避免伤害。[内容]0 简介 1 词法缺陷 1.1 = 不是 == 1.2 & 和 | 不是 &&转载 2008-05-19 14:11:00 · 1577 阅读 · 0 评论 -
linux操作系统下c语言编程入门
linux操作系统下c语言编程入门 整理编写:007xiong 原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux转载 2008-05-19 14:13:00 · 3134 阅读 · 0 评论 -
sip软电话wxCommunicator编译过程
1 将下载的全源码包all-in-one-r49-r175-2.8.6.tar.bz2解开到c:\work下面 2 打开wxWigets方案,将全部工程编译(注意耗时较长)编译后会生成要用到的wxWigets相关的库文件: 3 打开wxCommunicator的工程,设置inlcude目录 4同样将sipXtapi全编译了(注意要编译win32 debug的工程),在wx原创 2014-05-16 16:35:05 · 2985 阅读 · 0 评论