转载:https://www.cnblogs.com/tekkaman/archive/2011/04/20/2022650.html 上文分析了ATL.MFC CString的设计和实现,我们不禁会疑问,为什么ATL和MFC的CString头文件要搅在一起? 上文的分析有些杂乱,我们通过一张图来更加清晰的观察,如下: 上图中,用圈圈住的头文件表示ATL头文件,没被圈的代表MFC头文件.另外,在头文件旁边字符,表示各个头文件中实现的类. 现在让我们仔细观看,整个貌似平衡的设计中,其实有着很多的不…
STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来的.现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间.        STL的代码从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方…
  MFC中CString是一个方便的字符串操作的类, 然而很多函数需要传递字符指针, 这就需要进行CString和普通字符串的转换. 1.CString用作C字符串常量. 直接使用强制类型转换即可, 如: CString strSports(_T("Hockey is Best!")); TCHAR sz[1024]; lstrcpy(sz, strSports); 2.用作可修改字符串.要用传递字符指针的函数修改CString. 方法:使用成员GetBuffer和ReleaseBu…
http://www.cnblogs.com/kongtiao/archive/2012/06/13/2548033.html 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int.float和double这些数字类型转换为CString字符串只需一行代码就可以实现. 先看看Format用于转换的格式字符: %c…
//stdafx.h #include <atlbase.h> #include <atlstr.h> #include <atlapp.h> extern CAppModule _Module; #define _WTL_NO_CSTRING #include <atlwin.h> #include <atlmisc.h> #include <atlcrack.h> #include <atlframe.h> #incl…
      本文转载自:http://blog.csdn.net/wangkaishou/article/details/5846152,感谢网友 Technorati 标签: CString Format   在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int.float和double这些数 字类型转换为CS…
MFC.ATL和CLR是VC2005内置的三大库,涵盖了Windows的各种开发方法和开发应用.当然关于C++开发的库不止这三个,不过这三个是微软推荐. 从编程所处层次而言,WIN32为最底层,其次是MFC,然后是CLR.WIN32 winAPI MFC MFC类库 CLR .net库 WIN32常规就是不用MFC,使用API函数编的程序. MFC库有很多年的历史了,MFC是基于Windows API 的简单封装.其核心架构基于"Document/View"架构(20年前被认为很潮流的…
LL(1)分析法实验的mfc做到最后因为CString转化为string的问题卡了一个多小时,也是惨,网上各种方法找过都不行.幸亏最后还是找到几行代码搞定了.特此mark一下. USES_CONVERSION; char* s_char = W2A(m_in); inString = s_char;…
在公司培训期间,经理给了我们没人10个界面草图,让我们在VS2008下使用MFC设计,因为在经理的帮助和自己的努力下,终于在三天时间内完成,现在就根据在这三天 时间里所用到的控件做出如下总结: 1.Dialog对话框 ,一个对话框就相当于一个界面,在对话框里可以放其他控件. 2.Button按钮 ,是一个命令按钮,来响应用户的鼠标单击操作,然后进行响应的处理,它可以显示文本和位图. 3.Static Text 静态文本框 ,来显示正文,不能输入文本. 4.Edit Control编辑框,输入并编…
在MFC中添加控件后,按Ctrl+d可以改变控件TAB顺序,怕自己忘了,一个神奇的东西,记下. 关于改变Tab顺序的方法有以下几种: 方法一:在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP是影响TAB顺序的. 先创建的控件TAB顺序在前.如果要颠倒TAB顺序的话,就把在创建控件时把WS_TABSTOP去掉,并增加对“TAB键被按下”事件的捕捉,人工使用SETFOCUS来控制TAB顺序. 方法二: 在VC中,首先控件没有…
CString str1,str, str2; GetDlgItemText(IDC_EDIT1, str1); GetDlgItemText(IDC_EDIT2, str2); UINT value3 = _ttoi(str2); == value3) { return; } double value1 = _ttof(str1); double value2 = _ttof(str2); double value = value1 / value2; str.Format(_T("%.3f&…
在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int.float和double这些数字类型转换为CString字符串只需一行代码就可以实现. 先看看Format用于转换的格式字符: %c                 单个字符 %d                 十进制整数(int) %ld         …
由于结构体中用到联合体(联合体需要确定分配内存分配大小)或其它因素,需要用char数组来保存字符串,但是在MFC中一般都是用CString来存放字条串.关于它们之间的转换,在VS2008中有时会出现异常情况.在MSDN是这样写的: CString orig("Hello, World!"); // Convert to a char*    const size_t newsize = 100;    char nstring[newsize];    strcpy_s(nstring…
搞过MFC的人都知道cstring,给我们提供了非常多便利的方法. CString 是一种非常实用的数据类型. 它们非常大程度上简化了MFC中的很多操作,使得MFC在做字符串操作的时候方便了非常多.无论如何,使用CString有非常多特殊的技巧,特别是对于纯C背景下走出来的程序猿来说有点难以学习. 可是非常多情况下,我们还是须要cstring和string的转换. 分两步: 1把cstring转为char数组 2依据char数组,构造自己的string(记得释放内存) std::string C…
VS2013 测试 以下测试加入头文件: # include <string>#include <cstdlib>using namespace std; //--------------------------------------------------------------------- //CString to char* CString myteststr=_T("1234"); const char *a = (const char *)myte…
--- 已经通过初步测试---- ------------------ 下面的是传统常见数据类型的转换(非c++11)---------------  std::string 与其他常用类型相互转换, CString 与其他常见类型相互转换, 包括: int, char*, float, double, long. 自己写个类,方便调用, 包括:  MFC A.int 转 CString B.double 转 CString C .float 转 CString D.long 转 CString…
char* convertCStringToChars(CString string) { int nLength=string.GetLength(); ]; memset(c,,nLength+); WideCharToMultiByte(CP_ACP,,string,nLength,c,nLength,NULL,NULL); return c; }…
代码:CString  v_hex ; int v_dec; v_dec = wcstol(v_hex, NULL, 16);…
int 转 CString:CString.Format("%d",int);...............................string 转 CString CString.format("%s", string.c_str()); 用c_str()确实比data()要好. .......................................char* 转 CString CString.format("%s", cha…
在上一篇中记录了用fprintf函数写内容到文件中的方法,但是发现了问题:产生的文件字符串有乱码现象. 解决办法:用_ftprintf函数 另外,据说: unicode的话要用fwprintf         unicode 和 ANSI两个版本都可用的有宏_ftprintf 但是如下代码中出来的是“???”: CString str = "紫清婷"; _ftprintf(fp, _T("%s\n"), str); 试了半天,发现字母和数字都正确写入文件,但是汉字写…
int 转化为SCtring: int n = 123; CString str; str.Format("%d",n); 报错的话则改为:str.Format(_T("%d"),n); 或者 str.Format(TEXT("%d"),n); 即可 CString 转化为 int: CString str("123");int n= _ttoi(str);…
网上好多方法,比如强制转换: CString strTest = _T(“abcd”); char *buf = (LPSTR)(LPCTSTR)strTest; 可是都只得到了第一个字符. 后来,找到了原因.因为我的工程是基于UNICODE的,这样直接强制转换是不行的. 给出了下面两种方法,我试了方法二,能解决问题: 方法一: 可以用API:WideCharToMultiByte进行转换 方法二: 添加文件#include <afxpriv.h> CString strTest = _T(&…
消息:主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息.例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息,按下键盘上的字母键,将产生WM_CHAR消息. 消息处理:在MFC中,每个专门的处理函数单独处理每个消息.消息处理函数通常是某一类的成员函数,编写消息处理函数是编写框架应用程序的主要任务.可以使用ClassWizard创建消息处事函数,然后从Classwizard直接跳到源文件消息处理函数,编写处…
CString没有基类.一个CString对象由可变长度的一队字符组成.CString使用类似于Basic的语法提供函数和操作符.连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组容易使用.CString是基于TCHAR数据类型的对象.如果在你的程序中定义了符号_UNICODE,则TCHAR被定义为类型wchar_t,即16位字符类型:否则,TCHAR被定义为char,即8位字符类型.在UNICODE方式下,CString对象由16位字符组成.非UNICODE方式下,CStr…
bool IsChinese(CString Cstr) { int nLen = Cstr.GetLength(); unsigned char ch1, ch2; for (int i = 0; i != nLen; ++i) { ch1 = Cstr[i]; if (ch1 >= 0xA0) { return true; } else { continue; } } return false; }…
http://blog.sina.com.cn/s/blog_a674ea930101aeey.html…
事情得从一个chrome控制台中的无意打印说起. 众所周知,js共六种数据类型,string.number.undefined.boolean.object.null.当然javascript还准备了引用类型,他们都是object对象构造而来,如下图所示的Function.Array.Date...                话说到这儿,Array instanceof Object ....这些自然好理解,那么Array instanceof Function这他妈又是什么鬼?那就让我们来…
1. 讲个笑话 JavaScript 是一门编程语言 2. 异步编程 JavaScript 由于某种原因是被设计为单线程的,同时由于 JavaScript 在设计之初是用于浏览器的 GUI 编程,这也就需要线程不能进行阻塞. 所以在后续的发展过程中基本都采用异步非阻塞的编程模式. 简单来说,异步编程就是在执行一个指令之后不是马上得到结果,而是继续执行后面的指令,等到特定的事件触发后,才得到结果. 也正是因为这样,我们常常会说: JavaScript 是由事件驱动的. 3. 异步实现 用 Java…
目录(?) C/C++ 预定义宏^ C/C++ 预定义宏用途:诊断与调试输出^ CRT 和 C 标准库中的宏^ NULL 空指针^ limits.h 整数类型常量^ float.h 浮点类型常量^ math.h 数学常量^ EOF 常量^ errno.h 错误代码^ locale 类别^ _MAX_PATH 等文件名与路径长度限制^ RAND_MAX 随机数最大值^ va_arg/va_start/va_end 访问变长函数参数^ 宏实现的 CRT 函数^ Microsoft 预定义宏^ 平台与…
关于duilib的历史,我也就不多说了,能看到这篇文章的人都是有一定了解才能找到这个的. 我直接说下对这个库的基本使用吧. 我个人对一些好技术都是比较感兴趣的. 因为个人原因 喜欢接触一个好技术. 所以当我遇到这个库的时候 毅然选择用这个库写项目中的一部分了,就是treeview控件. 因为我的项目原来已经是一个成型的项目了,只是作为改进.如果将现有项目完全的改成duilib的 那么和重写没有任何区别. 所以我选择了一条看似荆棘满地的路--就是在WTL现有项目中嵌入进duilib.做一颗tree…