C++
文章平均质量分 89
zhongguoren666
本人迄今已有近七年的工作经验,一直从事软件开发,曾涉彩票、教育、铁路、农业、门户网站等多个行业,个人认为最精深的要数彩票行业了。本人开发过程中最擅长的要数C 和DELPHI,当然,在SOCKET、COM 、WebServic、数据库、多线程、线程同步、线程池、数据库连接池、串口通讯、UI设计、进程间通信等等技术也有较深入的学习。本人自认充满活力、拥有激情、爱好学习、充满自信。衷心希望能提供大家一些有用帮助与建议!
展开
-
LPTSTR、LPCSTR、LPCTSTR、LPSTR之间的转换
如何理解LPCTSTR类型? L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。P表示这是一个指针C表示是一个常量T表示在Win32环境中, 有一个_T宏这个宏用来表示你的字符是否使用UNICODE, 如果你的程序原创 2009-12-25 11:17:00 · 3592 阅读 · 0 评论 -
VS2005断点失效(无效)的问题
VS2005下使用VC,部分断点无效,显示『当前不会命中断点。还没有为该文档加载任何符号』。试过以下一些方法:1、无效断点所在的项目和启动项目的设置:项目->属性->配置属性->C/C++->常规->调试信息格式,这里不能为『禁用』;2、项目->属性->配置属性->链接器->调试->生成调试信息,这里设为『是』;3、C/C++->优化->优化选择『禁用』;原创 2009-12-07 16:19:00 · 989 阅读 · 0 评论 -
用代码实现手工“点击按钮”操作
工作中,许多人都想让用户操作方便,于是,就想让代码实现手工“点击按钮”操作,以便成自动的。我也是。 起初我直接调用了这个按钮的消息响应函数,如OnBnClickedButtonLogin();其结果是失败了。因为windows是基于消息机制的,直接调用响应函数实质上是没有调用该消息。 于是,便通过发送消息的方式来就这个按钮发送消息,如下所示:原创 2009-12-07 16:08:00 · 1414 阅读 · 0 评论 -
identifier not found问题解决
identifier not found问题的出现不是偶然的,是你编程时的疏漏所致. 我做开发时,遇到的情况是这样: 出现identifier not found问题的函数在一个类中进行定义和声明,但在另一个类或线程中进行调用,而你是直接调用,如AddSlash(); 解决: 此时,正确的调用方式应用是该函数所属的类对象->(或.)原创 2009-08-05 14:46:00 · 33626 阅读 · 0 评论 -
STL介绍(下)
标准模板库(STL)介绍(下)作者: winter作者:Scott Field 。 本文以STL容器list为例,介绍了find()函数、sort()函数,search()函数,splice()函数等,由浅入深,把list的用法和相关通用函数的用法做了详细介绍。使用STL通用算法find()在list中查找对象 我们如何在list中查找东西呢?STL的通用算法原创 2008-01-08 13:45:00 · 1185 阅读 · 0 评论 -
输入出程序代码本身的C++小程序
编写一个程序,输出自己。 如程序的代码是: “语句1; 语句2; 语句3; 语句4; ” 则输出: “ 语句1; 语句2; 语句3; 语句4; ” 程序如下:#include #include using namespace std; int main() { ifstream ifs(__原创 2007-10-23 17:16:00 · 8538 阅读 · 4 评论 -
VC中BSTR、Char和CString类型的转换(太牛了)
[分享]Vc中BSTR,char和CString的转换2007-07-10 17:481、char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如:char chArray[] = "This is a test";char * p = "This is a test";原创 2007-10-12 14:32:00 · 11639 阅读 · 1 评论 -
CString的GetLength()函数返回为0问题解决
---------------------------------------------------- “If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer be原创 2010-04-02 16:08:00 · 3291 阅读 · 0 评论 -
禁止/启用屏幕保护及系统热键等
1. 禁止/启用屏幕保护及电源管理 static UINT dss_GetList[] = {SPI_GETLOWPOWERTIMEOUT, SPI_GETPOWEROFFTIMEOUT, SPI_GETSCREENSAVETIMEOUT}; static UINT dss_SetList[] = {SPI_SETLOWPOWERTIMEOUT, SPI_SETPOWEROFF原创 2010-04-23 10:14:00 · 1836 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
答案:用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指原创 2010-03-23 15:21:00 · 741 阅读 · 2 评论 -
VC调用Delphi的DLL时遇到的问题及解决
在开发的过程,有时会遇到用VC调用Delphi的DLL的时候:1、调用过程 Delphi的DLL不是标准的DLL,所以,VC调用时会有限制。 大致包括过程: 1) 声明指向函数的指针,并定义函数指针; typedef BOOL (__stdcall * lpPlateTemplateFun)(double *原创 2009-09-29 09:42:00 · 9017 阅读 · 5 评论 -
STL介绍(上)
标准模板库(STL)介绍(上)作者: winter作者:Scott Field本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过! 这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。 当我原创 2008-01-08 13:42:00 · 1063 阅读 · 0 评论 -
14步掌握Qt编程
Qt教程一 —— 第一章:Hello, World!第一个程序是一个简单的Hello World例子。它只包含你建立和运行Qt应用程序所需要的最少的代码。上面的图片是这个程序的快照。 /***********************************原创 2011-08-03 08:54:11 · 2310 阅读 · 4 评论 -
Qt 内存管理机制
标签:qt内存 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/526734这篇文章首先发布于我的主页http://w原创 2011-08-03 08:59:39 · 1142 阅读 · 0 评论 -
Qt之数据库编程
摘自:《C++ Gui Qt4编程》 在Qt中,实现与数据库编程相关的模块是QtSql模块,该模块提供了一组与平台以及数据库种类无关的SQL数据库访问接口。此接口通过驱动程序与各种数据库进行通信。Qt桌面版提供的驱动程序如下:驱动程序数据库原创 2011-08-02 17:31:19 · 12857 阅读 · 2 评论 -
ASCII码对照表[备忘]
ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们原创 2011-08-02 17:44:50 · 861 阅读 · 0 评论 -
Qt事件研究
QEventQEvent类是所有事件类的基类。事件对象包含事件参数。Qt的主事件循环(QApplication::exec())从事件队列取得本地窗口系统的事件,并将它们转变成QEvent,然后装转换好的事件发送给QObjects。一般情况下,事件来自底层窗口系统,但原创 2011-08-04 15:27:03 · 916 阅读 · 0 评论 -
Qt QTableView显示日期时间格式
我们会经常做一些表格显示信息,其中经常有日期时间信息。当使用Qt的Model/View时,如果你用view自带的delegate,显示的时间可能不能符合要求。这就需要我们编写新的delegate类。以下是一个专门用于显示日期时间的delegate类“TimeEditDel原创 2011-08-04 15:25:15 · 3651 阅读 · 1 评论 -
Qt套接字编程
网络编程,OSI(开放式系统互联参考模型)七层参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 套接字(Socket)是网络通信的基本构建模块,又分为流式套接字(Stream Socket)和数据报套接字(Datagram Socket)两种类型的原创 2011-08-04 14:29:59 · 8418 阅读 · 3 评论 -
Qt 事件与事件过滤
作者:丁冬,华清远见嵌入式学院讲师。在Qt 当中事件都被看做为对象,都是继承与一个抽象的类QEvent,这样做的好处是为每一个可能存在的事件来分配一个侦听。当来自外界的事件出发,讲进行时间的处理,我们这个文档就是要讲如何使用事件。事件是怎样驱动的当一个事件发生的时候,原创 2011-08-04 14:30:49 · 836 阅读 · 0 评论 -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
UNICODE:它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统原创 2011-08-08 17:48:48 · 535 阅读 · 0 评论 -
Unicode字符集下CString与char *转换
在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2005环境下运行时会报各原创 2011-08-08 17:51:11 · 954 阅读 · 0 评论 -
vc的模态对话框和非模态对话框
Generally Speaking(1)创建一非模态对话框 CMyDlg* pMainWnd = new CMyDlg; pMainWnd->Create(); (2)创建一模态对话框 CMyDlg dlg;原创 2011-08-08 17:53:21 · 1242 阅读 · 0 评论 -
硬编码与硬编码
昨天在查看NHibernate一个帮助文档中,涉及到通过嵌入式读取配置文件消除对应用程序中对文件名的硬编码,第一次听说硬编码名词概念,在CSDN看到一些人对于这些概念的讨论,与硬编码对应的是软编码,对于硬编码和软编码定义其实是相对而言的,如果你了解这些名词,应该能够感觉其实与应用原创 2011-08-08 17:34:18 · 5535 阅读 · 0 评论 -
SendMessage 和 PostMessage 的区别
1、首先是返回值意义的区别,我们先看一下 MSDN 里的声明:LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam原创 2011-08-09 15:54:32 · 634 阅读 · 0 评论 -
图形视图框架(The QGraphics View Framework)
图形视图提供了一个外表(surface)来实现大量的客户所做的2D图形项的管理和相互的结合;一个视图窗口部件来使这些项可视化,并支持缩放和旋转。该框架包括一个事件传播体系,可以使得场景中的项的交叉可以达到双精度的精确控制。其中的项可以处理事件、鼠标按压、移动、释放和双击事件,原创 2011-08-18 09:30:51 · 2375 阅读 · 0 评论 -
C++回调函数用法
一回调函数我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时原创 2011-08-18 09:42:24 · 2246 阅读 · 0 评论 -
已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
这是针对SQL server 2005数据库的问题,登录的时候出现:"可以这样试一下:开始->>SQLServer2005->>配置工具->>SQLServer外围应用配置器->>服务和外围连接的应用配置器->>点击"远程连接"->>本地连接和远程连接->>同时使用T原创 2011-08-19 13:25:39 · 1061 阅读 · 0 评论 -
VC判断目录是否存在
VC判断目录是否存在,如果不存在则创建新目录:// Test Whether the dir existCString m_dir;if (m_dir.Right(1) == “\\”) m_dir = m_dir.Left(m_dir.GetLengt原创 2011-08-19 13:33:27 · 2632 阅读 · 0 评论 -
建立UNICODE的MFC工程
按正常步骤建立一个MFC应用程序工程。 打开: Project->Settings…->C/C++。在Preprocessor definitions中定义UNICODE和_UNICODE两个宏。 打开: Project->Settings…->Link。选择Ou原创 2011-08-19 13:36:23 · 905 阅读 · 0 评论 -
VC存储过程
如果用ado的话用_CommandPtr执行sql语句"call yourproc" 或是"exec yourproc(?,?,?)"参数用m_commandptr->Parameters ->Append (m_commandptr->CreateParameter ("tab原创 2011-08-19 13:24:48 · 1141 阅读 · 0 评论 -
The rowset is not bookmarkable"错误
用一个ADO+DATAGRID写的程序,编译正常.运行时出现"rowset is not bookmarkable",查了函数的调用和类型.都没有问题.搜索了下.原来是游标的问题.在ADOConn类的中GetRecordset方法中增加一句m_pRecordset原创 2011-08-19 13:27:53 · 1211 阅读 · 2 评论 -
More Effective C :理解new和delete
人们有时好像喜欢故意使C 语言的术语难以理解。比如说new操作符(new operator)和operator new的区别。 当你写这样的代码:string *ps = new string("Memory Management");原创 2011-08-19 13:38:20 · 789 阅读 · 0 评论 -
线程同步与异步套接字编程
事件对象时间对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是为通知状态的布尔值有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件,当人工重置的事件得到通知原创 2011-08-22 14:11:30 · 1466 阅读 · 1 评论 -
VC内存泄露检查工具:Visual Leak Detector
初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问 题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间原创 2011-08-22 16:52:20 · 943 阅读 · 0 评论 -
VC启动窗口画面制作方法研究
源代码运行效果图如下: 1. 概述前几天在设计软件时,选择VC作为开发工具,想做个启动画面,由于以前没有制作过,所以到网上搜了一通。网上有几篇相关文章,有两篇我觉得很有价值:一篇是关于 为方便显示图像制作的CPicture类的文章,原文是由Paul DiLasci原创 2011-08-23 13:11:53 · 1026 阅读 · 0 评论 -
VC无闪烁刷屏技术的实现
在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久,通过向高手请教,搜索资料,问题基本解决,现将文档整理出来以供大家参考.1.显示的图形为什么会闪烁 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由On原创 2011-08-23 13:14:29 · 824 阅读 · 0 评论 -
VC代码的编写和调试---编写易于调试的VC代码
注:载自http://blog.csdn.net/sxslyy/article/details/1678477一 程序的设计 要避免错误,首先要从好的设计开始。对于程序的设计,需考虑到程序的两个特性: 1简单性 大多数常见的错误来源于程序设计中不必要的复杂成原创 2011-08-23 13:23:53 · 909 阅读 · 0 评论 -
c++单件模式
1. 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。2. 动机 对一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印假脱机( printer spooler),只应该有一个文件系统和一个窗口管理器。一原创 2011-08-29 13:35:36 · 4199 阅读 · 2 评论 -
vc的模态对话框和非模态对话框
Generally Speaking(1)创建一非模态对话框 CMyDlg* pMainWnd = new CMyDlg; pMainWnd->Create(); (2)创建一模态对话框 CMyDlg dlg;原创 2011-08-30 14:38:19 · 1279 阅读 · 0 评论