
C/C++
山里来的鱼
这家伙很懒
展开
-
VC自定义消息ON_MESSAGE的编译错误error C2440
在手动添加ON_MESSAGE时,遇到下面的编译错误:error C2440: type cast : cannot convert from void (__thiscall CXXXView::*)(unsigned int,long) to long (__thiscall CWnd::*)(unsigned int,long) Pointers to members hav原创 2011-06-30 14:18:00 · 7358 阅读 · 4 评论 -
C++交叉类
<br />若 a.h 中 include 了 b.h<br />则可以在 b.h 头部添加声明 class A;<br />然后涉及到 A 类的参数传递均使用引用或指针,之后在 b.cpp 头部 include "a.h"原创 2010-09-03 14:57:00 · 593 阅读 · 0 评论 -
C++读写ini文件
C++读写ini文件原创 2010-08-11 16:32:00 · 1834 阅读 · 0 评论 -
C++单元测试框架
单元测试现在已经成为标准的编程实践,但是C++缺少Java和.Net平台语言的反射机制,所以无法枚举测试方法,必须手工添加,或者使用一些特别的宏,弄得代码非常难看。Java语言单元测试是JUnit的天下,C#基本上都用NUnit,而C++则群花怒放,单元测试框架非常多,JUnit移植过来的CppUnit、Boost::test、CppTest、CxxTest、TUT和GoogleTest等等。原创 2010-08-10 09:20:00 · 1029 阅读 · 0 评论 -
VC定时器
三种方式的定时器:SetTimer、CreateWaitableTimer和timeEvent原创 2010-06-10 16:28:00 · 556 阅读 · 0 评论 -
C++ RTTI(typeid)
C++ RTTI(typeid)原创 2010-08-04 10:02:00 · 768 阅读 · 0 评论 -
C++单例模式
C++单例模式原创 2010-07-29 10:08:00 · 12059 阅读 · 3 评论 -
关闭Windows XP系统恼人的Beep提示音
转自http://lsdn.lynnstudio.net/turn-off-the-annoying-windows-xp-system-beeps/在Windows应用程序中,有时为了提高报警的级别,需要用到Beep函数,但是,在应用程序的调试过程中该告警声却很是扰人,尤其是DELL笔记本的蜂鸣器声音更是大的惊人,那么怎么样在不更改硬件的情况下去掉这烦人的Beep提示音呢?同时按下Win转载 2010-05-27 16:42:00 · 4863 阅读 · 0 评论 -
使用QT Creator开发qt应用程序
前提条件安装QT和QT Creator,官方网站:http://qt.nokia.com/downloads在安装QT和QT Creator时,会提示要求安装MinGW,用来编译和调试QT应用程序First Step原创 2010-05-27 11:23:00 · 1223 阅读 · 0 评论 -
托盘图标莫名其妙消失问题的解决办法
转自djimon的专栏天网防火墙右下角图标消失及解决方法尝试: 有许多朋友发贴,天网防火墙在系统托盘处(右下角)的图标消失。本人作了些试验,发现在使用windows优化大师的系统医生时,会将破解版的天网防火墙启动加载认作无效。另一种消失的情况是隐蔵了不活动图标。解决方法请试一下,在关机前如果使用windows优化大师作系统清理的,点击天网防火墙图标,执行系统设置的向导,设置“开机时自动启动天网转载 2010-05-26 10:36:00 · 1327 阅读 · 0 评论 -
VC下使用Macro (vbs)来实现标准函数注释的自动添加
VC下使用Macro (vbs)来实现标准函数注释的自动添加 仿VA转载 2010-10-03 11:52:00 · 965 阅读 · 0 评论 -
error C2061: syntax error : identifier 'THIS_FILE'
error C2061: syntax error : identifier 'THIS_FILE' STL与VC6.0原创 2010-10-06 15:48:00 · 4792 阅读 · 0 评论 -
VC CListCtrl的低级错误
在做导入导出(CSV文件到CListCtrl)时,InsertItem成功,SetItemText不成功,折腾了半天,才弄明白,原来CListCtrl的Item的索引从0开始,而我写的代码则从1开始。理所当然地,当我SetItemText(1,1,text)时,因为Item为1(InsertItem(1,text)时,因为索引为0的Item没有,所以插入的Item的索引变成了0而不是1)的记录不存原创 2011-07-01 09:03:00 · 1011 阅读 · 0 评论 -
C语言的内存对齐
引言 先看下面这段程序#include using namespace std;struct C{ char b; int a; short c;};struct D{ int a; char b; short c;};int _tmain(int argc, _TCHAR* argv[原创 2011-06-08 17:27:00 · 788 阅读 · 0 评论 -
C++ 0x 之左值与右值、右值引用、移动语义、传导模板
转自http://blog.youkuaiyun.com/hikaliv/archive/2009/09/11/4541429.aspx 文章已同步到山里来的鱼和GAE博客左值与右值左值与右值的概念要追溯到 C 语言,由 C++ 语言继承了上来。C++ 03 3.10/1 如是说:"Every expression is either an lvalue or an r转载 2011-06-08 10:20:00 · 818 阅读 · 0 评论 -
DirectX Programmer's Reference Components
DirectX Programmer's Reference Components:DirectDraw、DirectSound、DirectPlay、Direct3D、DirectInput、DirectSetup和AutoPlay原创 2011-01-13 12:00:00 · 981 阅读 · 0 评论 -
游戏编程入门书籍与开源引擎
游戏编程入门书籍与开源引擎转载 2011-01-09 18:38:00 · 3408 阅读 · 0 评论 -
CDWordArray::SetSize异常
CDWordArray::SetSize异常原创 2011-01-07 11:50:00 · 1217 阅读 · 0 评论 -
浅谈2D游戏开发,面向C++初学者
静态语言(如C/C++)-->DirectX或者OpenGL-->游戏引擎-->数学(如A*寻路、有限状态机等)-->脚本(如LUA)-->XML转载 2011-01-07 09:14:00 · 1589 阅读 · 1 评论 -
VC读写注册表
VC读写注册表 两种方式API与CRegKey原创 2010-12-25 10:39:00 · 1099 阅读 · 0 评论 -
StarUML 代码生成(C++)
StarUML 代码生成(C++) 构造函数 析构函数 成员类型原创 2010-10-26 09:52:00 · 15130 阅读 · 5 评论 -
DOS设置JDK环境变量
@echo offset regpath=HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment::系统环境变量注册表值echo.echo =====================================================echo JDK转载 2010-05-17 15:14:00 · 1543 阅读 · 0 评论 -
window多线程
临界区初始化:InitializeCriticalSection 必须,如果没有,EnterCriticalSection就会出错锁:EnterCriticalSection 必须与LeaveCriticalSection配对使用,并且所有要同步的地方都需要配对使用EnterCriticalSection和LeaveCriticalSection解锁:LeaveCriticalSect原创 2010-04-28 13:58:00 · 510 阅读 · 0 评论 -
VC与JavaScript混合编程2
有两种方式可以实现:ATL+IWebBrowser2接口和IDispatch接口+IScriptControl接口。 ATL+IWebBrowser2 一、JavaScript调用VC的函数 1.编写Activex控件,在JavaScript中创建控件对象,并调用控件提供的方法 二、VC调用JavaScript的函数 关键是获取IWebBrowser2对象和IHTMLDocum原创 2010-01-28 17:24:00 · 6812 阅读 · 6 评论 -
_tmain问题
int main(int argc,char** argv) { printf("%s/n",argv[1]); } 在命令行输入参数 sunxin 屏幕打印的是 sunxin int _tmain(int argc,_TCHAR** argv) { printf("%s/n",argv[1]); } 在命令行输入参数 sunxi原创 2010-01-28 19:02:00 · 534 阅读 · 0 评论 -
QT Hello World
一、安装 1、先安装MinGW或者dev_cpp(运行devcpp-4.9.9.2_setup.exe),不妨设dev_cpp的安装路径为C:/Dev-Cpp 2、运行QT434.exe安装QT,不妨设安装路径为C:/Qt/4.3.4,安装QT时会提示要安装MinGW,在MinGW路径中 输入:C:/Dev-Cpp即可 3.配置环境变量 include=%include%;C:原创 2010-01-28 17:28:00 · 1121 阅读 · 1 评论 -
VC操作Excel
一、基本过程:1.打开Excel对象2.打开Workbook/Workbooks3.打开Worksheet/Worksheets4.选择表格Cell5.若要合并单元格这要先做第四步,并设置单元格的值,然后选择Range,再设置其属性值,最重要的一个属性值是:MergeCells6.保存退出二、在javascript中实现:1.var xls = new ActiveXObject(原创 2008-03-02 17:05:00 · 1546 阅读 · 0 评论 -
VC 异步套接字
一、在InitInstance中加入: WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return FALSE; }原创 2008-03-02 16:59:00 · 1139 阅读 · 0 评论 -
VC ADO
ADO中有三个核心的对象:Connection——表示到数据库的连接Command——用来处理重复执行的查询或处理需要检查在存储过程调用中的输出或返回参数的值的查询Recordset——用来获取数据,Recordset对象存放查询的结果,这些结果有数据的行和列组成。1.在stdafx.h中加入:#import "C:/Program Files/Common Files/System/原创 2008-03-02 16:23:00 · 545 阅读 · 0 评论 -
VC与javascript混合编程
1. 原理 VC++函数 2. 引入WebBrowser控件3. 引入CMyOccManager、CMyOleControlSite、CMyIDispImp类 1) 导入MyOleControlSite.cpp、MyOleControlSite.h、MyIDispImp.cpp、MyIDispImp.h文件4. 在XXXXApp中添加接口变量 1) 在你的App头文件中,添加原创 2008-03-02 17:14:00 · 1278 阅读 · 0 评论 -
VC DLL
一、基本知识库分为静态库和动态库动态库的加载则分为隐式链接和显示加载Dllmain()可有可无MFC AppWizard(dll)中三种类型中的第一种对应这静态库,第二种则对应则普通的动态库,该动态库不能导出MFC类,但能使用MFC类第三种相对于第二种来说就是能导出MFC类。后两者在发布产品时要确保用户机器上有MFC动态链接库。#pragma comment("dll1.lib")可以原创 2008-03-02 16:32:00 · 624 阅读 · 0 评论 -
VC Socket
一、原理1.基于TCP协议的服务器端程序流程:1)创建套接字(socket)2)绑定套接字(bind)3)将套接字设为监听,准备接收客户请求(listen)4)等待客户请求的到来,当请求到来后,接受请求,返回一个对应于此次连接的套接字(accept)5)用返回的套接字与客户端进行通信(send/recv)6)返回,等待另一客户请求7)关闭套接字2.基于TCP协议的客户端程序流程1)创建套原创 2008-03-02 16:54:00 · 1221 阅读 · 2 评论 -
使用MSXML
官方网站http://msdn.microsoft.com/zh-cn/xml/default.aspx MSXML http://msdn.microsoft.com/en-us/library/ms763742(VS.85).aspx MSXML API History(含各接口说明的链接)http://msdn.microsoft.com/en-us/library/ms762314原创 2010-02-02 13:39:00 · 623 阅读 · 0 评论 -
窗口关闭做了什么?
在单文档视图程序中,程序退出时执行的操作顺序为: (1)用户点击退出按钮,发送了WM_CLOSE消息----->响应函数为OnClose() (2)在OnClose中,调用DestroyWindow()----->销毁与指定CWnd窗口对象关联的窗口,但未销毁CWnd对象 (3)在DestroyWindow()中发送了WM_DESTROY消息----->响应函数为OnDestroy()原创 2010-02-02 10:12:00 · 375 阅读 · 0 评论 -
VC常见问题
1 屏蔽对话框的Enter和Esc键 实现OnOK和OnCancel函数:void CXXXDlg::OnOK() { if(::GetKeyState(VK_RETURN)<0) return; CDialog::OnOK(); } void CXXXDlg:: OnCancel () {原创 2010-04-29 15:36:00 · 630 阅读 · 0 评论 -
C++模板简介
转自http://www.cppblog.com/abilitytao/archive/2009/04/03/78795.html和http://www.cnblogs.com/zhaobl/archive/2009/02/26/1398446.html模板的概念 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的转载 2010-04-10 14:47:00 · 1518 阅读 · 2 评论 -
数据结构笔记
常用结构链表原创 2010-04-09 19:04:00 · 490 阅读 · 0 评论 -
Windows 语音编程
微软语音组件官网SAPI介绍(5.3和5.4)SAPI简介软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech synthesis)。这两个技术都需要语音引擎的支持。微软推出的应用编程接口API,虽然现在不是业界标准,但是应用比较广泛。SAPI全称 The Microsoft Speech API.相关的SR和SS引擎位于S原创 2010-04-09 14:38:00 · 2751 阅读 · 0 评论 -
VC中DDB与DIB位图编程
转自天极网基本概念先来用通俗的语句讲解位图和调色板的概念。我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级,而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。对于人眼而言,这已经是"真彩色"了。对每个像素进行了(R,G,B)量化的图像就是位图,其在计算机中对应文件转载 2010-04-20 09:52:00 · 983 阅读 · 0 评论 -
《MFC Windows编程》之文档视图笔记
在文档视图应用程序中,应用程序的数据有文档对象代表,而数据的视图由视图对象代表。文档和视图合作来处理用户的输入并绘制结果数据的文字或图形表示。MFC的CDocument类是文档对象的基类,CView类是视图对象的基类。应用程序的主窗口CFrameWnd和CMDIFrameWnd类已经不再以处理消息为工作焦点了,而是主要用作了视图、工具栏以及其他用户界面的容器。MFC支持两种类型的文档/视图程序原创 2010-03-30 19:00:00 · 684 阅读 · 0 评论