DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C++/C

上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 47 下一页

摘要:对于指针和常量,有以下三种形式都是正确的:const char * myPtr = &char_A;//指向常量的指针char * const myPtr = &char_A;//常量的指针const char * const myPtr = &char_A;//指向常量的常量指针下面依次对这三种类型进行介绍。因为*操作符是左操作符,左操作符的优先级是从右到左,对于1.常量指针(Constant Pointers)int * const p先看const再看* ,是p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。实例1:Vie 阅读全文
posted @ 2012-12-15 17:01 DoubleLi 阅读(287) 评论(0) 推荐(0) 编辑

摘要:非常惭愧,我过去也仅仅了解boost、STLport这样的库,以及一些GUI库,但是居然有如此众多的C++库,其实令我惊讶。当然,这个问题应该辩证的看,对于拿来主义确实可以直接使用这些库,但是如果学习和专业的开发,确实应该自己写,因为——适合的才是最好的。无论效率还是简洁性都是自己开发的好,否则还要那么多程序员干什么。程序就像做衣服,需要量身定做,拼凑起来的,一定不会好用,不过借鉴也是必须的,可以少走弯路。 还有什么库希望大家补充。 在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类.. 阅读全文
posted @ 2012-12-13 23:25 DoubleLi 阅读(372) 评论(0) 推荐(0) 编辑

摘要:现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,路已不是原来的路……回家看着书架上的旧书发呆,听着李克勤的旧欢如梦,才发现自已原来太喜欢怀旧. 笔者从事软件开发多年,其中有两年多的时间一直是与Win 阅读全文
posted @ 2012-12-13 23:24 DoubleLi 阅读(613) 评论(0) 推荐(0) 编辑

摘要:我们将创建的第一种类型的库是动态链接库 (DLL)。 使用 DLL 是一种重用代码的绝佳方式。 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。本演练涵盖以下内容:创建新的动态链接库 (DLL) 项目。向动态链接库添加类。创建引用动态链接库的应用程序。在控制台应用程序中使用类库的功能。运行应用程序。系统必备本主题假定您具备 C++ 语言的基础知识。 如果您是刚开始学习 C++,建议您参阅 Herb Schildt 编写的“C++ Beginner's Guide”(《C++ 初学者指南》),该书可从http://go.mi 阅读全文
posted @ 2012-12-13 12:48 DoubleLi 阅读(253) 评论(0) 推荐(0) 编辑

摘要:我们将创建的下一个库类型是静态库 (LIB)。 使用静态库是重用代码的一种绝佳方式。 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。本演练演示如何完成以下任务:创建静态库项目。向静态库添加类。创建引用静态库的控制台应用程序。在应用程序中使用静态库的功能。运行该应用程序。系统必备本主题假定您具备 C++ 语言的基础知识。 如果您是刚开始学习 C++,建议参阅 MSDN Library 中的此教程:第一层:C++ 初学者指南。创建静态库项目在“文件”菜单中,选择“新建”,然后选择“项目”。在“项目类型”窗格中,选择“Visual C 阅读全文
posted @ 2012-12-13 12:46 DoubleLi 阅读(328) 评论(0) 推荐(0) 编辑

摘要:.h 文件#define WM_TEST WM_USER + 1class CTestThread : public CWinThread{ DECLARE_DYNCREATE(CTestThread)protected: CTestThread (); virtual ~CTestThread ();public: virtual BOOL InitInstance(); virtual int ExitInstance();protected: afx_msg void OnTest(WPARAM wParam,LPARAM lParam); DECLARE_MESSAGE_MAP()}. 阅读全文
posted @ 2012-12-12 16:07 DoubleLi 阅读(1148) 评论(0) 推荐(0) 编辑

摘要:最近看到网上说include包含路径的说法比较乱,而且有一些有错误,在此纠正一下,做下记录: include头文件时的参考路径是 相对于本文件的路径 即: 1.h中#include “2.h”时,是相对于1.h文件所在目录的路径; 1.cpp中#include “2.h”时,是相对于1.cpp文件所在目录的路径; 阅读全文
posted @ 2012-12-10 11:28 DoubleLi 阅读(3861) 评论(0) 推荐(0) 编辑

摘要:在写 头文件的时间 经常会有一些 class QFile 等这类 看似 是声明的东西..例如下面#ifndef WINDOW_H#define WINDOW_HQT_BEGIN_NAMESPACEclass QTcpServer;class QTcpSocket;class QProgressBar;class QLabel;class QDialogButtonBox;class QFile;QT_END_NAMESPACE//code endclass QAction;class QCheckBox;...如果没有 声明 将会 出现类似下面的错误ISO C++ forbids declar 阅读全文
posted @ 2012-12-09 22:54 DoubleLi 阅读(2010) 评论(0) 推荐(0) 编辑

摘要:一,问题描述MSVCRTD.lib(crtexew.obj) : error LNK2019:无法解析的外部符号_WinMain@16,该符号在函数___tmainCRTStartup中被引用Debug\jk.exe : fatal error LNK1120: 1个无法解析的外部命令error LNK2001: unresolved external symbol _WinMain@16debug/main.exe:fatal error LNK 1120:1 unresolved externalserror executing link.exe;二,产生这个问题可能的原因产生这个问题的真 阅读全文
posted @ 2012-12-08 11:25 DoubleLi 阅读(1226) 评论(0) 推荐(0) 编辑

摘要:一、汉字编码的种类汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5。 1、GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。它是一个简化字的编码规范,当然也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉字占6763个。我们平时说6768个汉字,实际上里边有5个编码为空白,所以总共有6763个汉字。 GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。GB2312中汉字的编码范围为,第一字节0xB0-0xF7(对应十.. 阅读全文
posted @ 2012-12-08 11:21 DoubleLi 阅读(17985) 评论(0) 推荐(1) 编辑

摘要:msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) 已经在 libcpmtd.lib(xmutex.obj) 中定义好几百条网上说解决办法:保证需要链接的几个项目的运行时库使用同一个类型就OK了!例如我的工程中有GameCore、Plugin_D3D9RenderSystem、Plugin_Win32Platform三个工程,那么就去设置每个工程的C/C++ ->代码生成-> 阅读全文
posted @ 2012-12-08 11:15 DoubleLi 阅读(534) 评论(0) 推荐(0) 编辑

摘要:很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结,以及关于 MSVC 与 CRT 之间的种种恩怨情仇。如果你使用的作业系统是 Linux、Mac 或其他非 Windows 平台,你可以忽略这篇文章;如果你使用的作业系统是 Windows 平台,但没有用 Microsoft Visual Studio C++(以下简称为 MSVC)软体撰写 C++ 程式的话,这篇文章对你的帮助可能很有限;但如果你的作业系统是 Windows,而且你使用的程式整合开发环境是 MSVC 软体撰写 C++ 程式的话,这篇文章应该能够帮助你釐清一些重要的基础观念。身为程式设计者, 阅读全文
posted @ 2012-12-08 10:20 DoubleLi 阅读(1949) 评论(0) 推荐(0) 编辑

摘要:为什么会出现这个错误??“error LNK2005: 已经在aaa.obj中定义”编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用int 阅读全文
posted @ 2012-12-07 19:39 DoubleLi 阅读(23519) 评论(0) 推荐(1) 编辑

摘要:boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:strings="123"; inta=lexical_cast<int>(s);这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接使用boost:: lexical_cast。如果转换发生了意外,lexical_cast会抛出一个bad_lexical_cast异常,因此程序中需要对其进行捕捉。现在动手编写如下程序,体验如何使用boost:: lexical_cast完成数值转换。 阅读全文
posted @ 2012-12-06 00:42 DoubleLi 阅读(18741) 评论(0) 推荐(3) 编辑

摘要:1. int to string一、使用atoi说明:itoa( int value, char *string, int radix ); 第一个参数:你要转化的int; 第二个参数:转化后的char*; 第三个参数:你要转化的进制; 举例://------------------------------------- //功能:C++ int 转 string (使用atoi) //环境:VS2005 //------------------------------------- #include "stdafx.h" #include <iostream> 阅读全文
posted @ 2012-12-04 20:06 DoubleLi 阅读(729) 评论(0) 推荐(0) 编辑

摘要:C++中嵌入ie浏览器总结(1) - ie边框 及上下文菜单 最近项目中用html 来做界面,也就折腾了一下在wxwidget中嵌入浏览器的若干细节工作,mfc也基本是类似的,由于wxwidget中已经做了一个封装wxie,但是开发过程中也遇到了不少问题,在此做一下总结:ie边框 及上下文菜单 普通嵌入到程序里面的浏览器页面都会有一个灰色的边框,这样放到程序里面就很难看。目前网上流行的办法添加css:body{border:0;} 但是这个方法的缺点是,必须要把页面头部的dtd申明去掉。网上的错误提法是类似以下链接的:http://www.faceker.com/200801/webbrows 阅读全文
posted @ 2012-11-29 23:25 DoubleLi 阅读(1040) 评论(0) 推荐(0) 编辑

摘要:一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。二、运行机制:1、钩子链表和钩子子程: 每一个Hook都有一个与之相关联... 阅读全文
posted @ 2012-11-29 21:00 DoubleLi 阅读(29761) 评论(2) 推荐(1) 编辑

摘要:1.独立代码//-----------开始---------------------//#include <atlbase.h>#include <Mshtml.h>#include <winuser.h>#include <comdef.h>#include <string.h>void EnumIE(void);//处理网页void EnumFrame(IHTMLDocument2 * pIHTMLDocument2);//处理框架void EnumForm(IHTMLDocument2 * pIHTMLDocument2);// 阅读全文
posted @ 2012-11-27 21:05 DoubleLi 阅读(5058) 评论(0) 推荐(0) 编辑

摘要:1.独立代码//-----------开始---------------------//#include <atlbase.h>#include <mshtml.h>#include <winuser.h>#include <comdef.h>#include <string.h>void EnumIE(void);//处理网页CComModule _Module; //使用CComDispatchDriver ATL的智能指针,此处必须声明#include <atlcom.h>void EnumAllElement(IH 阅读全文
posted @ 2012-11-27 21:04 DoubleLi 阅读(1271) 评论(0) 推荐(0) 编辑

摘要:ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。一、关于DLL的介绍 DLL,动态链接库,Dynamic Link Library的缩写,是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。DLL作为共享函数库的可执行文件,封装了一个或多个已被编译、链接的函数。多个进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。DLL 还有助于共享数据和资源。 它和可执行文件(.EXE文件)非常类似,他们的区别在于 DLL 中虽然包含了可执行代码却不 阅读全文
posted @ 2012-11-27 20:58 DoubleLi 阅读(11636) 评论(0) 推荐(0) 编辑

上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 47 下一页