
C++
文章平均质量分 81
password318
爱好新技术,新思想,是一个
展开
-
QT QMessageBox
QMessageBox mb( "Application name here", "Saving the file will overwrite the original file on the disk.\n" "Do you really want to save?", QMessageBox::Information, QMes原创 2012-03-20 00:28:08 · 880 阅读 · 0 评论 -
CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 (转)
CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength());转载 2011-11-10 20:45:24 · 2335 阅读 · 0 评论 -
静态数据声明不能识别问题
类的静态成员一定要初始化,否则链接时就会报错原创 2011-12-02 00:37:16 · 1263 阅读 · 0 评论 -
C++多个项目依赖及引用
在一个基于MFC的项目NewMFC中,设计了几个自定义类,但一般的MFC项目无法显示Console内容。为了做一些简单的测试,期望用Console项目对自定义类数据进行测试,并通过控制台显示输入和输出显示。只需新建一个控制台项目取名Console,编辑项目属性,在项目引用中添加NewMFC项目。此时,在Console项目的主程序中正确编写对类的测试,别忘了导入相应的头文件。将Console项目原创 2011-11-09 21:45:36 · 5303 阅读 · 2 评论 -
存储持续性、作用域和链接性
参考《C++PrimerPlus(第五版)》第265页作用域scope描述了名称在文件(翻译单元)的多大范围内可见。链接性linkage描述了名称在不同单元间共享。链接为外部的名称可以在文件间共享,链接性为内部的名称只能由一个文件中的函数共享。自动变量的名称是没有链接性,因为他们不能共享。在名字空间中声明的变量的作用域为整个名称空间,因此全局作用域是名称空间作用域的特例。寄存器变量原创 2011-11-09 18:46:43 · 2004 阅读 · 3 评论 -
私有继承CObject导致无法用new新建对象
如何返回一个局部对象引用?原创 2011-11-10 13:01:05 · 522 阅读 · 0 评论 -
类构造函数和析构函数
Test类描述和实现#include "stdafx.h"#include "ModelInfoTest.h"#include "Test.h"#include using namespace std;extern LPTSTR ConvertCStringToStr(CString& m_str);// CTestCTest::CTest(){}CTest::CTest(原创 2011-11-10 16:37:49 · 582 阅读 · 0 评论 -
何时使用引用
使用引用参数的主要原因程序员能个修改调用函数中的数据对象通过传递引用而不是整个数据对象,可以提高程序的运行速度。什么时候用引用,什么时候用指针,什么时候按值传递如果数据对象很小,如内置数据类型或小型结构,可以按值传递如果数据对象是数组,则只能使用指针,因为这是唯一的选择,并将指针声明为指向const的指针如果数据对象是较大的结构,则使用const指针或const引用原创 2011-11-09 16:33:39 · 628 阅读 · 0 评论 -
在Console项目中显示CString对象的问题
通过项目依赖,完成了一个基于MFC的Console项目依赖于MFC的项目。现要将MFC项目中的基于CString的对象信息显示出来。需要作如下转换void execute(){ wcout.imbue(locale("chs")); //显示中文,必须要加 CModelInfo info; info.m_id = _T("测试程序"); LPTSTR lpsz = new T原创 2011-11-09 22:22:13 · 681 阅读 · 0 评论 -
C++项目依赖项
1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。 (等同于“#pragma comment(lib, "winsock.lib") ”语句)2. 添加库(Libs)文件目录方法 1:[解决方案资源管理器]“项目->属性->配置属性-原创 2011-11-09 14:06:25 · 4942 阅读 · 0 评论 -
项目与库文件链接引用
解决方案中存在多个子项目,如VR解决方案中,存在EasyHome,json_cpp.lib,json_util.lib项目,其中json_util项目依赖json_cpp项目,easyHome项目又依赖json_cpp.lib和json_util.lib项目,为清晰起见,项目的引用头文件都放置在include文件夹中,项目的lib文件都放置在lib文件夹中。引用时要保证库文件和库路径一致。以便在e原创 2011-12-06 12:48:52 · 471 阅读 · 0 评论 -
编译和警告
排出警告#if defined(_MSC_VER) && _MSC_VER >= 1310# pragma warning( disable: 4996 ) // disable fopen deprecation warning#endif1: Command line warning D9035 : option 'Wp64' has转载 2011-12-06 10:09:09 · 765 阅读 · 0 评论 -
Joomla开发相关
1、去除首页中Welcome to FrontPage该文字在Menu|Home(首页)的属性编辑中,在【系统参数】栏里。可以进行修改或者指定为不显示2、导航菜单使用mod_arttotalmenu.zip模块,并且选择属性参数为CSS3类型,注意模块将自动生成一个id="nav“的ul标签,为正常使用,请确保页面的标签中没有重复定义nav标签。所有的样式表可以在模块文件夹中相应的cs原创 2011-12-17 10:27:24 · 708 阅读 · 0 评论 -
TiXmlNode 操作
/************************************************************************/ /* 按文件顺序读入门窗 /* modified by zheng zhe /* update 2012/03/30 /***************************原创 2012-03-31 13:26:29 · 2005 阅读 · 0 评论 -
C++ 指针监视
调试指针对象时,如果动态创建一个数组。在监视时,只显示改指针变量的地址值,要想查看数组信息,可以再监视栏中填入"指针变量名,数组大小“形式。如下图所示原创 2012-03-14 12:25:32 · 1369 阅读 · 0 评论 -
QT图形程序中同时启动命令提示符窗口
然后就可以用,qDebug()原创 2012-02-25 10:46:19 · 895 阅读 · 0 评论 -
遍历目录中的多个文件
void CdxfReadView::OnDxfDeleteLine(){ // TODO: 在此添加命令处理程序代码 CFileFind filefind; BOOL fileExit=filefind.FindFile("c:\\删除四条线\\*.dxf"); while(fileExit) { fileExit=filefind.FindNextFile();原创 2012-02-14 20:13:30 · 623 阅读 · 0 评论 -
string::npos,图标导入及调试技巧
昨天写的逻辑判断,对find返回npos的意义理解的很模糊,查看了cpp primer后发现下面的内容,得知find方法返回一个名为 string::npos 的特殊值,说明查找没有匹配。粘上以备记忆.The string class provides six search functions, each named as a variant of find. The operations转载 2011-12-19 21:34:50 · 689 阅读 · 0 评论 -
DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
MPLEMENT_DYNAMIC是实现“运行时类型识别”宏,与之相对应的是DECLARE_DYNAMIC(声明“运行时类型识别”宏)。也就是说你在.CPP文件中如果看见有IMPLEMENT_DYNAMIC,则在.H文件中必定有DECLARE_DYNAMIC的声明。 DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。 DEClARE_D转载 2011-12-19 23:01:34 · 635 阅读 · 0 评论 -
C++中的调试
TRACE0(exp) 说明: 与TRACE相似,但他把跟踪字符串放在代码段中,而不是DGROUP,因此使用少的DGROUP空间。TRACE0是一组跟踪宏的一个变体,这些宏可用于调试输出。这一组包括TRACE0,TRACE1,TRACE2和TRACE3,这些宏不同在于所取参数的数目不同。TRACE0只取一个格式化字符串并可用于简单文本消息。TRACE1取一格式化字符串加上一个变量—一个将转储的原创 2011-12-08 18:44:54 · 645 阅读 · 0 评论 -
属性显示对话框
对话框的OK单击按钮实现void CPropertyDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_propName);}BEGIN_MESSAGE_MAP(CPropertyDlg, CDialog) ON_BN_CLICKED(ID原创 2011-12-19 20:13:32 · 832 阅读 · 0 评论 -
VC2005项目移植到VC2010
由于VC2010 改进了很多界面设计,提供了丰富的停靠功能。1、将新旧项目加载到同一个解决方案中2、将资源逐一拷贝到新项目中。也可以通过调试发现哪些ID缺失,再去查找,并拷入原创 2011-12-18 21:44:46 · 683 阅读 · 0 评论 -
extern及多文件的用法
//fun.h#include "iostream"//包含头文件using namespace std;extern int MAX;//声明外部变量int sum(int,int);//fun.cpp实现文件extern int MAX = 6;int sum(int a,int b){ return a+b;}//Test.cpp测试主程序#include "fu原创 2011-11-09 13:48:46 · 1020 阅读 · 0 评论 -
C++读取UNICODE,UTF-8,ANSI,及char wchar相互转换
根据msdn描述,如果参数为ccs=UNICODE,则 (注:这里的UNICODE指UTF-8和UTF-16LE等的统称) 如果文件没有BOM头,则编码为ANSI,相当于没有写css= 如果文件BOM为UTF-8,则编码为UTF-8,相当于写了css=UTF-8 如果文件BOM为UTF-16LE,则编码为UTF-16LE,相当于写了css=UTF-16LE转载 2011-11-11 10:30:06 · 4362 阅读 · 0 评论 -
wcout不显示中文问题
#include "stdafx.h"#include "iostream"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ wcout.imbue(locale("chs")); //加上这句话就行了 wchar_t name[]=L"郑哲,王希"; //也可以用_T("郑哲,王希")原创 2011-11-09 11:13:59 · 820 阅读 · 0 评论 -
MFC发送消息(一)
进程间通信除了管道邮槽等高级方法外,还可以用自定义消息的方法来实现。windows是消息驱动的,系统定义了很多消息,但同时它也允许我们自己定义消息。自定义消息有两种方法:(1)在WM_USER上加一个值来定义消息。WM_USER(0x400)到0x7FFF都可以用来自定义消息(一般取WM_USER+100)。以MFC对话框程序为例,定义自己的消息要分以下几个步骤首先在发送端:①定义转载 2011-10-31 11:47:56 · 6749 阅读 · 0 评论 -
DXFReader
// DXFReader.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #ifdef _DEBUG#define new DEBUG_NEW#endifusing namespace std;struct Line{ char * origi原创 2011-11-18 11:15:13 · 992 阅读 · 0 评论 -
eof读取问题
while (1) { iss.get(chr); if (iss.eof()) { break; } printf("%c\n", chr); cout << iss.eof() << endl; }文件或者其他需要判断eof的时候,必须记住,要读完立刻判断。读完原创 2011-11-16 20:18:50 · 600 阅读 · 0 评论 -
文件在缓存中操作
wcout.imbue(locale("chs")); clock_t start,end; start = clock(); CFile m_curFile(_T("c:\\design2.dxf"),CFile::modeRead); UINT uFileSize = (UINT)m_curFile.GetLength(); char* istrBuffer = new char[u原创 2011-11-16 20:22:31 · 483 阅读 · 0 评论 -
Windows via C/C++ 学习(5)Windows中使用的Unicode和ANSI函数
http://www.cnblogs.com/Fly-pig/archive/2011/01/11/1932954.htmlWindows 给出的带有字符串参数的函数都有两个相同版本的函数与之对应,一个是 Unicode 版本,一个是 ANSI 版本,分别以 FunctionNameW 和 FunctionNameA 表示,FunctionName 实际上是一个宏定义。转载 2011-11-16 00:35:29 · 753 阅读 · 0 评论 -
MFC DLL静态链接
在使用向导创建基于MFC的DLL时,有如下三种类型MFC扩展DLL使用MFC扩展DLL,产生的DLL只能与MFC客户程序一起工作。他可以导出C++类给客户端。导出的函数可以使用c++/MFC数据类型作为参数或返回值,导出一个类时,客户端能创建类对象或者派生这个类。同时,在DLL中也可以使用DLL和MFC。VC的MFC类库也保存在一个DLL中,MFC扩展DLL动态链接到MFC代码原创 2011-10-26 10:59:59 · 5503 阅读 · 0 评论 -
MFC 图形设计
设备描述表是Windows定义的数据结构,包含的信息允许windows将输出请求转换为对正在使用的特定物理输出设备的动作。输出动作采用设备无关性GDI调用形式,将图像绘制在任何显示器或者其他输出设备上。1、使用BeginPaint(hwnd,&ps)来获取设备描述表句柄,必须使用EndPaint(hwnd,&ps)来释放2、使用GetDC()来获得,必须使用ReleaseDC()来释放原创 2011-10-24 21:03:12 · 951 阅读 · 0 评论 -
基于VS2010的MFC动态菜单
1、创建菜单资源新建IDR_DYNAMIC_MENU,制作如下菜单,其中“动态菜单1”,“动态菜单2”的属性popup为false,并设定ID为ID_DYNAMIC_ITEM1和ID_DYNAMIC_ITEM2,中间的分隔符在Caption属性中输入"-",并设置popup为false,separator为true。为系统菜单添加一个类似placeholder的菜单项,其Caption原创 2011-10-23 21:27:10 · 5737 阅读 · 2 评论 -
CArray
MFC数组类CArray的使用的操作详解[转] MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以转载 2011-10-10 12:16:28 · 9055 阅读 · 1 评论 -
MFC技巧和小知识
1、MFC中设置TAB 顺序,在对话框的设计视图中,选择菜单【格式】|【TAB 顺序】2、单选框的设置,对于属于同一组的单选框,只需要在属性面板中将第一个单选按钮的GROUP属性置为true,,其余设置为false。系统会根据TAB order顺序,直到碰到下一个GROUP为true的控件,这之前的为一组,之后的为下一组。3 、只能选择的下拉菜单,选用ComboBox控件,类型选择Drop原创 2011-10-23 23:56:43 · 977 阅读 · 0 评论 -
Visual C++ in Short: Encoding and decoding with Base64
Base64 is a popular encoding to convert arbitrary data into a format that can be transmitted as an ASCII string. ATL provides a few functions that implement the Base64 specification.To encode with B原创 2011-11-22 14:57:14 · 842 阅读 · 0 评论 -
MFC JSONCPP 配置
将JSONCPP以静态库方式导入,需要注意的是,项目中的代码生成中的运行库,和JSONCPP的静态库项目的代码生成的运行库要一致,否则将报如下错误afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds图1是JSONCPP的lib_json项目的图2是自己的项目的原创 2011-11-02 20:05:59 · 3558 阅读 · 0 评论 -
DXF简介
DXF数据接口 每个CAD系统都有自己的数据文件,数据文件分图形数据文件、几何模型文件和产品模型文件几种。数据文件的格式与每个CAD系统自己的内部数据模式密切相关,而每个CAD系统自己内部的数据模式一般是不公开的,也是各不相同的。由于用户使用的需要,就有数据交换文件概念的出现。 DXF为AutoCAD系统的图形数据文件,DXF虽然不是标准,但由于AutoCAD系统的普遍应用,使得DXF成为转载 2011-11-29 10:57:38 · 4014 阅读 · 0 评论 -
DXF图元文件提取与显示(一)
#include "StdAfx.h"#include "DXFMeta.h"//图元名称const string DXFMeta::NAMES[MetaTypes]={"OTHER","LINE","CIRCLE","POLYLINE"};//************************************// 图元对象是所有图元的基类,针对DXF的行和偏移// 的字节数原创 2011-11-24 22:08:52 · 6005 阅读 · 1 评论 -
DXF图元文件提取与显示(三)-Circle
#pragma once#include "dxfmeta.h"class DXFCircle : public DXFMeta{public: explicit DXFCircle(UINT rCount,UINT seekBytes); ~DXFCircle(void); virtual string OutputFormat(); friend ostream& ope原创 2011-11-24 22:14:46 · 2864 阅读 · 0 评论