
C++
程序员Linc
资深技术专家,专注移动开发与人工智能领域15年+
展开
-
C++类设计者的核查表
1. 类需要构造函数么?2. 数据是否需要保持私有的? 方案一public: int length; 方案二public: const int& length;//在构造函数中length = true_length;这样由于是const变量,只能读,不能修改。private: int true_length; 方案三public: in转载 2009-04-21 14:25:00 · 1841 阅读 · 2 评论 -
sizeof 详解
c++入门面试的拦路虎之一,现转帖如下,备忘! sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“ 辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。 但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不 适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话, 那么这篇文章对你或许有所帮助。转载 2010-03-13 11:10:00 · 1385 阅读 · 0 评论 -
无法找到资源编辑器dll
这个错误真的是莫名其妙,在编辑资源文件是提示:D:/program files/Microsoft Visual Studio 9.0/VC/bin/rcdll.dll无法找到资源编辑器dll。 原来是我缺少rcdll.dll,这是为什么呢?我是完全安装的VS2008啊,百思不得其解。 后来好友深蓝给我传了一个rcdll.dll,运行正常!~~~ 我把这个dll放到原创 2010-03-17 08:49:00 · 8774 阅读 · 1 评论 -
快速删除临时文件
转自:http://www.cppblog.com/kangnixi/archive/2010/01/28/106609.html 1、 问题阐述 在VC编程调试中,产生的调试信息一般情况下都存放在Debug文件夹下,另外还有*.ncb、*.opt、*.aps等文件,导致程序文件临时文件太多,管理不方便,那怎样可以把生成的临时文件快速清除掉呢?2、 实现技巧转载 2010-03-18 16:17:00 · 1841 阅读 · 0 评论 -
fatal error LNK1112: 模块计算机类型“ARM”与目标计算机类型“X86”冲突
这是今天遇到的第一个致命问题,去网上搜了一下,用下面的方法解决问题尝试方法:项目属性->配置属性->链接器 -> 命令行 -> 附加选项, 添加 /MACHINE:ARM出现下边错误:MSVCRT.lib(msvcr90.dll) : fatal error LNK1112: 模块计算机类型“THUMB”与目标计算机类型“ARM”冲突尝试方法:项目属性->配置属性->转载 2010-03-18 16:44:00 · 5027 阅读 · 1 评论 -
VS2005 C++ 手机开发杂记(上)
偶然发现此文,作为纪念!转自:http://blog.tanggaowei.com/2008/05/vs2005-c.html作者 传说一梦 写于 2008-05-08 ———————————————————————————- 添加 nmake -> link 的 lib 路径 ———————————————————————————- EX_LIBS="D:/Program F转载 2010-03-18 16:57:00 · 2678 阅读 · 1 评论 -
windows mobile 下创建/隐藏菜单
1.创建并显示菜单SHMENUBARINFO mbi; ZeroMemory(&mbi, sizeof(SHMENUBARINFO)); mbi.cbSize=sizeof(SHMENUBARINFO); mbi.hwndParent=m_hWnd; mbi.hInstRes=::AfxGetInstanceHandle(); mbi.dwFlags=SHCMBF转载 2010-03-27 13:50:00 · 2092 阅读 · 1 评论 -
转义字符
转义字符含义ASCII码(16/10进制)/o空字符(NULL)00H/0/n换行符(LF)0AH/10/r回车符(CR)0DH/13/t水平制表符(HT)09H/9转载 2010-04-08 10:31:00 · 1555 阅读 · 0 评论 -
Win32应用程序中进程间通信方法分析与比较
1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称转载 2010-04-09 16:04:00 · 1528 阅读 · 2 评论 -
mspdb80.dll无法找到
在cmd中键入cl执行编译时会出现mspdb80.dll无法找到的情况,是因为VC/Bin/下没有“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件,解决的方法:1>直接从Common7/IDE/下复制这四个文件到VC/Bin/下即可解决2>添加系统变量(Path),这样:我的电脑->属性->高级->环境变量->系统变量,在path中转载 2010-04-10 10:23:00 · 2973 阅读 · 0 评论 -
C++面试题集合
(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 (2)char * const p char const * p const char *p 上述三个有什么区别?答案: char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和转载 2010-07-14 10:06:00 · 2731 阅读 · 0 评论 -
VC++6.0中使用ADO方式操作ACCESS数据库
<br />ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文详细地介绍在Visual C++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码。为了使读者朋友都能测试本例提供的代码,我们采用Access数据库,您可以直接在我们提供的示例代码中找到转载 2010-07-25 11:26:00 · 2298 阅读 · 0 评论 -
WM 去掉右上角的ok键和x键
<br />今天要实现这个功能,用c++。<br />代码总结如下,感谢qq群好友 逆光边缘之箭和♀旦淡的幸福<br /> case WM_INITDIALOG: { // Create a Done button and size it. SHINITDLGINFO shidi; shidi.dwMask = SHIDIM_FLAGS; s原创 2010-06-03 09:17:00 · 1969 阅读 · 0 评论 -
C++前向声明
<br />可以声明一个类而不定义它<br /> class Screen;//declaration of the Screen class<br /> 这个声明,有时候被称为前向声明(forward declaration),在程序中引入了类类型的Screen.在声明之后,定义之前,类Screen是一个不完全类型(incompete type),即已知Screen是一个类型,但不知道包含哪些成员.<br /> 不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类转载 2010-07-29 10:17:00 · 1556 阅读 · 0 评论 -
C++中的switch语句
<br />原创文章,转载请注明出处,谢谢! <br /> 作者:清林,博客名:飞空静渡<br />switch语句在c或c++语言中是非常普通的一个语句了,而且我们也是经常用到的。而且我们使用的switch语句都是和case、default、break等语句一起使用的。<br />switch语句的使用可以非常的简单,也可以非常的复杂,所以你可以看到下面的一些另类的使用。<br />首先问一下的是:你知道switch文法是怎么定义的吗?<br />学过《编译原理》的人都知道,我们转载 2010-07-31 14:45:00 · 31019 阅读 · 0 评论 -
C++学习笔记
此笔记记录在学习工作中遇到的点点滴滴小问题。并随时更新。2010-8-2什么是友元函数和友元类?原创 2010-08-02 16:22:00 · 1109 阅读 · 0 评论 -
C++中友元类和友元函数的示例讲解
<br />简单的讲 :把类外部的类或函数声明为友元类和友元函数,使其能直接访问类中的私有成员。<br />格式: friend 类 或 函数 声明<br />//此语句可以放在类中的任意位置,与访问权限保留字无关。<br />需要注意几个方面:<br />1.友元关系是不可以传递的。<br /> 比方说你是我的友元而Joe是你的友元,但这并不意味着Joe是我的友元。<br />2.友元关系不能继承。<br />3.友元关系不是互通。<br />把class A设置为class B的友元并不会使得clas转载 2010-08-02 16:23:00 · 1431 阅读 · 0 评论 -
c++和java中的字符和字节
<br /><br />在 C++ 和 Java 中,用来代表“字符”和“字节”的数据类型,以及进行编码的方法:类型或操作C++Java字符wchar_tchar字节charbyteANSI 字符串char[]byte[]UNICODE 字符串wchar_t[]String字节串→字符串mbstowcs(), MultiByteToWideChar()string = new String(bytes, "encoding")字符串→字节串wcstombs(), WideCharToMultiByte()b转载 2010-11-27 10:31:00 · 2201 阅读 · 0 评论 -
c++多字节与宽字节字符串转换(windows平台)
<br />本文转自:http://www.asarea.cn/showdiary.jsp?id=193<br /> <br />大家都知道,在标准c++中有string和wstring,前者为多字节ANSI字串,后者为宽字节wide字串(UTF-16)。<br />在一些应用中常常需要在二者之间以及与UTF-8之间进行字串转换,这里提供一个自己写的类,用于之间的转换。<br />原理是利用windows的api:WideCharToMultiByte、MultiByteToWideChar。<br />这转载 2010-11-27 15:43:00 · 2668 阅读 · 0 评论 -
buffer几种用法
<br />chard1[128];size_tbytes_transferred=sock.receive(boost::asio::buffer(d1));buffer 大小是自动管理的同样std::vector<char>d2(128);bytes_transferred=sock.receive(boost::asio::buffer(d2));还可以基于boost::arrayboost::array<char,128>d3;bytes_transferred=sock.receive(boost转载 2010-11-30 10:46:00 · 6735 阅读 · 0 评论 -
C++ 数据库连接代码示例
<br />最近在搞c++操作数据库,之前转过一篇很好的文章,现在又看到一篇总结的也不错,特此转过来,希望对和我一样的需要的朋友有个帮助。<br />本文转自:http://hi.baidu.com/lvguohao/blog/item/4990d2513872342c42a75b86.html/cmtid/78f46273571072108701b08f<br /> <br /><br />一、引入ADO库文件<br />使用ADO前需要在工程的stdafx.h文件或写ADO代码的类的头文件中用#impo转载 2010-12-07 16:39:00 · 5603 阅读 · 0 评论 -
c++用boost的property_tree库来操作xml配置文件
<br />property_tree用的 XML 解析器是 RapidXML,深入研究一下它还是有好处的。<br /> <br />有了property_tree库,c++上读写xml配置文件也变得异常轻松了。(开始时很怀念c#里的app.config)。<br /> <br />由于我的项目用的很简单的配置,所以我只是参考了property_tree的例子就okay了,property_tree属于serialization ,我编译了该库,发现编译后125M大,很大呀。<br /> <br />下面是原创 2010-12-11 15:07:00 · 8062 阅读 · 4 评论 -
C++编写Windows服务
<br />本文转自:http://www.cnblogs.com/pbreak/archive/2010/10/20/1856461.html<br />代码尚未经过本人测试,以备不时之需。<br /> <br />#include "windows.h"SERVICE_STATUS gSvcStatus; //服务状态SERVICE_STATUS_HANDLE gSvcStatusHandle; //服务状态句柄HANDLE ghSv转载 2010-10-28 11:06:00 · 2078 阅读 · 0 评论 -
用emacs做为C/C++集成开发环境
<br />做为嵌入式软件开发者,我想许多人会和我一样,在选择开发工具时徘徊过。因为嵌入式软件的开发和PC上的软件开发很不一样。特别是Windows软件开发时,可以有许许多多的集成开发环境可以选择。有时候甚至是不需要思考的选择。比如你要开发MFC程序,那么你的选择只有VC++。 嵌入式开发还有一个特点,就是开发环境经常会发生改变。这个项目在windows下开发,下一个项目可能就转向Linux了。因此,我这里要选择的是一个在Windows和Linux下使用方式保持一致的开发工具。因为你一旦熟悉了一种开发环境,转载 2010-10-28 14:53:00 · 7904 阅读 · 0 评论 -
c++标准容器的简介
http://ewangplay.appspot.com/?p=5002容器类可以分为两大类:(1)序列容器(Sequence containers)这种容器中的元素是有序的,每一个元素在容器中都有一个确切的位置,这个位置不依赖于元素的值,而是跟放入容器的时机有关。标准的序列容器有三个:vector, deque, list。另外你也可以把字符串(string)和数组(array)看成序列容器。Vectors一个vector用动态数组来管理它的元素。像普通数组一样,通过对应的索引支持随机访问。从一个vect转载 2010-12-17 10:59:00 · 1618 阅读 · 1 评论 -
C++ 一些http操作函数
<br /><br />本文转自:http://www.cppblog.com/kyelin/archive/2007/05/08/23628.html<br /> <br />//==========> 初始化回话<br />HINTERNET hSession=::InternetOpen("Http",<br />PRE_CONFIG_INTERNET_ACCESS,<br />"",<br />INTERNET_INVALID_PORT_NUMBER,<br />0);<br /><br />if(转载 2010-12-18 14:32:00 · 3214 阅读 · 0 评论 -
BOOST库在Windows下的配置
<br /><br />一、下载<br />首先从boost官方主页http://www.boost.org/下载最新版boost安装包(目前最新版是1.39.0)。因为 boost一部分类是需要编译成库才能使用的,所以我们还需要准备好boost专用的编译辅助工具bjam。网上很多人都提倡直接使用boost安装包中 附带的bjam源码来编译出bjam,但是之前需要修改若干配置脚本才能编译成功。个人认为真没什么必要,费这劲毫无意义。boost官方网站在提供 boost安装包下载链接的同时也提供与该版本安装包对转载 2010-10-27 16:00:00 · 9399 阅读 · 7 评论 -
ACE 的安装
<br />from:http://hi.baidu.com/erdosfish/blog/item/27b06c22bb93caa54723e8e6.html<br /><br /><br />ACE的安装是一件比较麻烦的事情,这里简单的记录了我在VS2005下安装ACE的过程,希望能给大家一个参考。<br />安装环境:操作系统:Windows XP 专业版编译环境:VS2005中文版ACE版本:ACE-5.5.1安装过程:下载安装包。Ace的安装文件可以在http://download.dre.van转载 2010-10-26 16:24:00 · 1982 阅读 · 0 评论 -
boost shared_ptr用法
<br />boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:<br /> <br />#include <string>#include <iostream>#include <boost/shared_ptr.hpp>class implementation{public:转载 2010-12-21 16:49:00 · 5688 阅读 · 0 评论 -
c++继承经典例子
<br />本文转自:http://blog.youkuaiyun.com/zhaori/archive/2007/07/20/1700356.aspx<br />文中列出了c++中继承的不同情况,例子确实很经典,收藏!<br /> <br />1、常规继承<br />#include <iostream.h>class Base{private: int b_number;public: Base( ){} Base(int i) : b_numb转载 2010-12-22 16:30:00 · 1737 阅读 · 0 评论 -
2010年12月份C++笔记
c++primer 的笔记1、关于继承派生类只能通过派生类对象访问其基类的 protected 成员,派生类对其基类类型对象的 protected 成员没有特殊访问权限。例如,假定 Bulk_item 定义了一个成员函数,接受一个 Bulk_item 对象的引用和一个 Item_base 对象的引用,该函数可以访问自己对象的 protected 成员以及 Bulk_item 形参的 protected 成员,但是,它不能访问 Item_base 形参的 protected 成员。 v原创 2010-12-22 16:15:00 · 1508 阅读 · 0 评论 -
VC++ Directories in vs2010
<br /><br />写这个的目的就想迅猛解释一下什么是VC++ directory, 以及在VS2010里的变化。<br /> <br /> <br />当你打开VS2010, 当你需要配置C++, 那真是一声叹息啊, 配置页面不见了! 回头说VS08的年代, 里面都是这样子的$(VSinstalldir), $(fxcopdir), 嗯, 这些都是给IDE配置的环境变量, 但是, cl.exe 是不支持的. 你现在还用VS08么, 用的话打开%LOCALAPPDATA%/Microsoft/Visu转载 2010-11-02 13:21:00 · 2494 阅读 · 0 评论 -
操纵 C 风格字符串的标准库函数
<br />strlen(s) Returns the length of s, not counting the null.返回 s 的长度,不包括字符串结束符 null strcmp(s1, s2) Compares s1 and s2 for equality. Returns 0 if s1 == s2, positive value if s1 > s2, negative value if s1 < s2.比较两个字符串 s1 和 s2 是否相同。若 s1 与 s2 相等原创 2010-11-05 09:29:00 · 1196 阅读 · 2 评论 -
c++位操作符
<br /> <br />bitwise operators <br />~ bitwise NOT(位求反) ~expr << left shift(左移) expr1 << expr2 >> right shift(右移) expr1 >> expr2 & bitwise AND(位与) expr1 & expr2 ^ bitwise XOR(位异或) expr1 ^ expr2 | bitwise OR(位或) e原创 2010-11-05 10:11:00 · 1128 阅读 · 0 评论 -
C++ 选择容器的提示
If the program requires random access to elements, use a vector or a deque.如果程序要求随机访问元素,则应使用 vector 或 deque 容器。If the program needs to insert or delete elements in the middle of the container, use a list.如果程序必须在容器的中间位置插入或删除元素,则应采用 list 容器。If the pr原创 2010-11-05 17:16:00 · 1293 阅读 · 0 评论 -
std::deque简单说明
本文转自:http://blog.chinaunix.net/u2/86575/showart_1734758.htmlstd::deque是一个高效的双端队列,可以高效地进行插入和删除操作。以SGI C++ STL为例deque的基本结构是:有一个map ,map中的元素是一个记录了一个大小为512字节的线性容器。std::deque的构造方法:std::deque queInt;//空队列std::deque queInt(10);//长度为10的队列(其中元素被初始化为该类型的0值)std::dequ转载 2010-12-28 17:00:00 · 11264 阅读 · 0 评论 -
容器构造函数
<br />C<T> c; Create an empty container named c. C is a container name, such as vector, and T is the element type, such as int or string. Valid for all containers.创建一个名为 c 的空容器。C 是容器类型名,如 vector,T 是元素类型,如 int 或 string 适用于所有容器。 C c(c2); Create c a原创 2010-11-05 16:42:00 · 1582 阅读 · 0 评论 -
C++学习笔记-十一月份
11-4 四迭代器运算*iter Return a reference to the element referred to by the iterator iter.返回迭代器 iter 所指向的元素的引用 iter->mem Dereference iter and fetch the member named mem from the underlying element. Equivalent to (*iter).mem.对 iter 进行解引用,获取指定元素中名为 mem原创 2010-11-05 16:50:00 · 1161 阅读 · 0 评论 -
VC编写有图形界面的Windows服务程序
环境:Windows 2003,VC 6.0 摘要:从建立一个COM服务程序入手,然后将一个MFC项目改造成服务程序,最后让这一程序在启动时可以显示图形界面。 关键字:windows服务程序 COM服务程序 开机前启动 NT服务 与桌面交互 一、什么是windows的服务程序? 可以使用下面的几种方法看到它。 打开控制面板,然后是管理工具,里面有一个“服务”,双击后打开; 或者是通过输入命令的方式,打开开始菜单,点击运行,输入mmc services.msc(mmc可省略),也可打开; 我们会转载 2010-11-10 08:25:00 · 3654 阅读 · 0 评论 -
用C++访问SQL Server 2000的实例
一、ADO简介 ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,不仅简单易用,并且不失灵活性.不失为C++利用数据库快速开发的不错选择。 理论就不用我在这儿费话了,网上有很多,但光是理论,也不是不够的,ADO访问数据的方法很灵活,容易让人混淆.网上大部分的实例都是基于MFC的,数据库也是Access多,这儿我写了一个C++语言访问MS SQL2000的实例,希望对比我还菜鸟的菜鸟有所帮助。转载 2010-11-10 08:50:00 · 2031 阅读 · 1 评论