- 博客(24)
- 资源 (3)
- 收藏
- 关注
原创 应用程序正常初始化失败 VS2005
现象XP下(通过VS2005编译并调试)运行(FreeImage的TestAPI)程序,出现“应用程序正常初始化失败。请单击“确定”,终止应用程序”。(调试窗口中输出:LDR: LdrpWalkImportDescriptor() failed to probe E:\o
2011-08-10 11:47:18 3019
原创 VS2005 应用配置不正确 清单(manifest) R6034
现象用VS2005编译的程序部署到某些系统(XP、Win2003)中常会遇到#1“ 应用程序配置不正确,程序无法启动,重新安装应用程序可能会修复问题。”或者#2“没有找到MSVCR80.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复问题。”或者当复制MSVCR80.DLL到应用目录后提示#3“R6034”。原因Visual C++ Libraries as Sha
2008-12-11 13:48:00 3926
原创 算术表达式二叉树表示
这是在学校时作为一个热心人在CSDN论坛上解决的一个问题,最近用到了这个算法,重写看来是有难度了,之前没留过这些代码,好在论坛上还能搜到。看看以前写的代码,很有意思啊:)还是留在我的地盘比较放心,copy/paste一下吧。算法是那么回事,程序很多毛病啊/** * 假设输入的中缀表达式为: * (a+b)*((c+d)*e+f*h*g) * * 1)以二叉链表的存储结构创建一棵。 * 2
2008-03-17 11:40:00 14945 4
原创 Windows网络编程示例二——反应式echo服务器
代码组织上不是很合理,很多细节没有注意,只是作为一个演示记下反应式I/O的一种使用模式,通过telnet作为客户端演示之。/**//** * 基于反应式I/O的echo服务器。监听端口5432,CTRL+C优雅结束服务。 * * * 完成: * 1)通过单线程为多个客户提供服务。 * 2)通过信号机制优雅的结束服务。 * 3)减少fd_set的构建。 * 4)避免资源泄露。 * * 未完
2008-02-28 17:05:00 1160
原创 Windows网络编程示例一——简单的echo服务器
如下代码是一个 简单的echo服务器,它示例的一些Winsock函数的用法。#include iostream>using namespace std;#ifdef WIN32# include WinSock2.h>/**//// 也可在setting/liker/input/Additional dependencies加入导入库引用# pragma comment(lib,
2008-02-28 11:39:00 1676
原创 完成端口使用总结
前言本文不是全面介绍完成端口的,只是简单介绍了一下完成端口和几个常用概念。本文主要关注完成端口关闭时资源释放问题。基础介绍 完成端口——可能是Win32下最复杂的一种I/O模型,Win32下最复杂的内核对象。它通过指定数量的线程对重叠I/O请求进行管理,以便为已经完成的I/O请求提供服务,相对其它I/O模型,它管理任意数目I/O套接字。假若一个应用程序同时需要管理为数众多的
2008-02-26 17:59:00 3246 1
原创 模板拷贝构造与赋值的不对称
今天看了More Effective C++附2中关于auto_ptr的实现,试了一下发现了个很有趣的问题,代码如下:templateclass T>class auto_ptr ...{public: explicit auto_ptr(T *p = 0): pointee(p) ...{} templateclass U> auto_ptr(auto_ptr& rhs): poi
2007-11-26 15:00:00 994
原创 Resiprocate笔记(一)——搭建测试环境
故事不多,知道后不过几句话。一个开始……相关文档主站:http://www.resiprocate.org源码包相应项目目录和DOC目录。获取Resiprocate通过Subversion客户端Tortoise SVN获取,命令行输入如下命令:svn checkout https://svn.resiprocate.org/rep/resiprocate/main r
2007-09-06 11:32:00 9216 6
原创 使用CRT函数和CreateThread的注意事项
原文:http://support.microsoft.com/support/kb/articles/Q104/6/41.ASP概述 所有的C运行时函数除signal外都能够在通过CreateThread创建的线程中正确的运行。然而,对某些CRT函数的调用,在线程终止时会引发小小的内存泄露。例如:当调用strlen时并不会触发CRT线程在数据块中分配内存,而调用malloc,fopen,_
2007-08-30 12:47:00 1495
原创 演示ACE_Log_Msg类的使用
// /**//** * 演示ACE_Log_Msg类的使用 * * ACE日志系统几乎提供了应用程序所需要的全部日志功能,尤其对于 * ACE_Log_Msg_Backend提供了必要的接口将日志分门别类(logger_key) * 的输出到不同设备(如:屏幕、文件、日志服务器Deamon等),这对于同一 * 模块中对不同逻辑(如:内存,线程等资源的使用)的监测提供了便利
2007-08-02 12:50:00 2647
原创 ACE编程准则全记录(一)--反应器
前言 ACE框架的使用是相互依存的,各个框架通过遵循一定的准则来相互配合,共同完成特定的功能。如果你违反了这些约定,幸运的话在调试期可以发现错误(程序的崩溃),不幸的话在程序运行期发生不希望看到的结果(如连接无法正常关闭)。本系列文章记载怎样遵循这些规则来正确使用ACE。场景 平台:Windows XP,ACE5.5,VS2005 通过反应器模式和继承自ACE_Event_H
2007-07-20 14:48:00 2023
原创 实例演示--vector与内存管理
由于本面问题下面文件尽量做到节省空间// 测试主文件 // -*- C++ -*-//=============================================================================/**//** * 测试目的:vector相关内存泄漏检测 * 内容简介: * 1)测试不同类型的vector * 2)对象的构造与析构及
2007-07-19 11:32:00 1174
原创 VS2005是是非非(一)——CString
引言 VS2005 对很多人来讲很陌生,它也是引发非议很多的IDE,大致罗列一下: 他对C++标准和C++模版的支持很好,如:for(int i; i 它的编译报错是众多编译器中非常友好的,优化之类那是自然的了(不太清楚,不敢妄言)。 占用内存过多,启动太慢。 与老版本程序兼容不好,很多系统库做了改进,如:MFC,ATL。 VS200
2007-07-17 17:16:00 2264
原创 VS2005中的MFC程序使用BerkeleyDB
问题 在db.h中定义了如下枚举类型: typedef enum { DB_BTREE=1, DB_HASH=2, DB_RECNO=3, DB_QUEUE=4, DB_UNKNOWN=5 /* Figure it out on open. */ } DBTYPE; 在VS2005的MFC程序使用BerkeleyDB,编译器报告下面的
2007-07-17 13:29:00 3183 1
原创 ADO数据库编程
导入ADO接口#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF")#include // ADO C/C++ Record Binding Definitions#define TEST
2007-06-29 17:04:00 1031
原创 调试中不能正确引入符号表
问题 调试包含其他库(如:MFC、ACE、MYSQL)的工程时,常常会遇到无法找到符号表的情况。这种情况下你就无法观察到程序的运行时堆栈,变量内容等信息。原因 符号表(VC、.NET中*.pdb文件)文件没有正确引入。来龙去脉 可执行文件(*.exe和*.dll)和静态库的调试版本中包含符号表文件的路径,而符号表文件则包含相应符号的源文件路径等
2007-06-06 14:01:00 1227
原创 内存泄露检测
内存泄露是许多大规模程序中亟待解决的问题,下面是一点资料整理,帮我记忆吧。有VC自带的工具,也有免费的比较成熟的工具。控制台程序编译即可看到效果。// = MemoryLeakDetect.cpp/// 去掉注释观察VS2005自带内存检测工具效果//#define DEFAULT_CRGDBG_MEM_CHECK#ifndef DEFAULT_CRGDBG_MEM_C
2007-06-05 16:04:00 1945
原创 关于字符编码问题
问题 无论出于什么原因你都不可能避免接触到UNICODE和其它的字符编码,比如不同系统API调用、其他函数库的引入、COM等等。所以在编写Windows(或其他)程序时运用一点点技巧无疑会减少很多不必要的麻烦。在调用涉及字符操作的API时你可能会遇到下面问题: 函数调用需要wchar_t*或者char*字符参数。 函数无法导入XXX(wchar_t*,
2007-06-05 11:38:00 1024
原创 VC(.NET) 工程配置及工具使用
问题解决: 1 )VS2005 Debug状态调试会遇到MSVCR80D.dll未找到错误? Property Pages||Configuration Properties||Manifest Tool||Use FAT32 work-around设置为Yes。 2) VS2005去除UNICODE(ACE_INET_Addr::addr_to_strin
2007-05-17 17:45:00 1132
原创 动态库中模版类的导出问题综述
动态库中模版类的导出问题综述作者:lovebzhou [email protected] 2006-11-16摘要:模版是OO的另一种解决之道,增加了效率与类型安全。动态库作为模块和组件的载体,增加了应用配置的灵活性。本文记录了动态库中导出模版类的相关问题,但并未作过深的讨论,其中涉及了STL和ACE的相关内容,但他们无关紧要。关键字:动态库、模版类、导入、导出、对象工厂问题描
2006-11-16 11:49:00 1959
原创 多线程编程的一点讨论
本来列下如下题目甚至更多,没有时间去整理。 简单说说吧: 一、线程带来的好处是低计算任务环境中的快速响应(如:GUI)和多CPU的充分利用,妄想通过多线程让许多计算量大的任务在单CPU上提速,那是笑话。 二、同步:只要明白了为什么要同步,那多线程就没什么难的了。换个角度,把共享数据作成线程安全的后,也就没有了线程难控的一些问题。搜索Monitor模式解决线程间共享数据一致
2006-08-18 10:26:00 905
转载 系统理解Win32 API和MFC(下)
作者: 温昱 作者主页: lcspace.diy.163.com 二、MFC的概念模型 前面我们研究了WIN32 API的“领域模型”,对它有较全面的认识。下面,对MFC概念模型的研究,我们把重点放在对app framework的研究上。 app framework中的message响应/传递机制是最重要的。而Hoo
2006-08-18 09:54:00 980
转载 系统理解Win32 API和MFC(上)
作者: 温昱 作者主页: lcspace.diy.163.comWin32 API是微软的操作系统Windows提供给开发人员的编程接口,它决定了我们开发的Windows应用程序的能力。MFC是微软为开发人员提供的类库,在某种意义上是对Win32 API的封装。本文试图从全局角度对Win32 API和MFC进行理解──给出二者的概念模型。本文使用UML描述概念模型。Win32 API本不
2006-08-18 09:16:00 1163
原创 理解数据对齐
为什么会产生数据对齐问题 8位CPU 当然不会产生数据对齐问题,当CPU发展到16,32位时,因为CPU的一次内存访问就能取回4个byte(且用32位举例,这个数据理所当然的缓存在相应的32位寄存器中)——里面可能存储了4个1byte的数据,也可能存储了2个2byte的数据……,所以CPU在逻辑上将内存单元寻址地址边界设置为4的倍数(如:0,4,8,12……),这是数据对齐产生的必要条件之一
2006-08-17 16:41:00 7551
面向模式的软件体系结构:并发和网络对象模式
2008-06-13
软件构架编档(英文)
2008-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人