1.TortoiseSVN支持file///,http://,svn://三种协议访问。
2.sprintf中格式化double类型到字符串的规则
double a = 397.0054
sprintf(szTmp, "%3.2f", a); // szTmp = "397.01"
sprintf(szTmp, "%03.2f", a); // szTmp = "397.01"
sprintf(szTmp, "%04.2f", a); // szTmp = "397.01"
sprintf(szTmp, "%06.2f", a); // szTmp = "397.01"
sprintf(szTmp, "%07.2f", a); // szTmp = "0397.01"
只有当格式化的输入字符格式(sprintf的第二个参数)小数点前的数字大于double类型的变量的格式总长度(包括小数点)时,格式化后的字符串前面才会有“0”字符。格式串的小数点前表示总宽度。
2.utf-8是编码而不是字符集,unicode是字符集;gb2312既是字符集,又是编码。gb2312是unicode的子集,但是不排除在其他的(或者未来的)某种汉字字符集/编码里,有些字连unicode都没有收录。这种字就只有那种汉字编码方式,而没有utf-8的标准编码。这时,在一定的局部范围内,软件会使用unicode的私有部分临时和这些字关联,这样一来一方面便于那些基于Unicode的API来处理,另一方面也可以真的用utf-8编码了
4. 关于类8583通信报文方面的代码笔记:
4.1 压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8,0000010100000110B是56的非压缩型BCD码. (简单地说:非压缩BCD一个字节存放一位十进制数,压缩BCD一个字节存放两位十进制数)。
4.2 域数据的填充:右补空格,左补零(RIGHT_SPACE, LEFT_ZERO),还有一种左靠右补零和右靠左补零。
4.3 ASC2BCD中的算法:数值向右移一位是除以2,向左移一位是乘以2;这个函数把字符"123456"转成数字:12,34,56(Byte Format)。这个函数把ASC字符串转成压缩BCD码;
4.4 BCD2ASC把BYTE串BYTE bcd[3] = {0x12, 0x34, 0x56} 转成了字符1, 2, 3, 4, 5, 6(Byte Format),这个函数的长度nLen应该是转换后的字节的个数。
5.数据库中可以建立复合主键,即多个字段同时作为主键。但这种情况表示每个字段都不能唯一,而不是这几个字段和起来唯一。
6.lambda是一种特殊的函数声明方式,它可以用来声明一个匿名函数,所谓的匿名函数是指没有函数名的函数。函数调用是可以直接调用lambda表达式返回的结果。一般lambda函数的声明方式:lambda 参数列表:表达式;
7.闭包(Closure)指携带着它们被定义所处的“环境”的函数。通俗的说法是函数里嵌套函数,并且子函数可以引用外函数定义的局部变量。
8.尽量用const和inline,而不是define。
无参的宏定义用const int MAXNUM = 500这种类型来代替;带参数的宏用inline内联函数来代替。使用const可以进行类型安全检查。
9.CDC中画笔的用法
CDC *pDC;
pDC = new CClientDC(this);
CPen pen(PS_SOLID, 1, RGB(255,0,0));
CPen *pOldPen = pDC->SelectObject(&pen);
pDC->SelectObject(pOldPen);
delete pDC;
10.VC++操作技巧
10.1 在资源编辑界面,CTRL+D设置控件焦点顺序。
10.2 WTL中模态对话框不需要继承CMessageFilter, CIdleHandler和重写PreTranslateMessage和OnIdle函数。
STL相关的知识
1. 最近刚开始使用STL中的容器,发现map中的元素在insert之后,会自动依key排序。我想问一下,各位高手,能不能让map的元素按照 insert的顺序排列,而不是自动的依key自动排序?
回答: 那就没必要用map了,用vector就行,vector中放pair <first, second>就行了。
WTL相关知识
1. 有些控件出现IsWindow断言,可能是没有将控件变量和控件ID关联起来,需要调用m_Text1.Attach(GetDlgItem(IDC_STATIC1))这样来绑定。注意:只有非模态的对话框才需要这么做,模态的对话框不需要加这行代码,直接可以像这样m_Text1.SetWindowText(...)使用。
2. 首先需要记住的是对话框必须是无模式的,因为CUpdateUI需要在程序的消息循环控制下工作。如果对话框是模式的,系统处理消息循环,我们程序的空闲处理函数就不会被调用,由于CUpdateUI是在空闲时间工作的,所以没有空闲处理就没有UI updating。
3. UIAddChildWindowContainer(),它告诉CUpdateUI我们的对话框含有需要Updating的子窗口。
零碎知识整理
1. _gcvt函数把flout/double型数据转成char型字符;
2. 编译Qt4.6.2的configure参数
configure -debug-and-release -platform win32-msvc2005 -opensource -fast -nomake examples -nomake demos -no-webkit
nmake confclean
3. socket中的timeval是指数据包的间隔时间,即:多长时间没有接受到数据,和文件大小没有关系。
4. fwrite的两个参数,count,1,一个是缓冲区大小,一个是缓冲区数量。
5. 介绍一下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。
6. 可以用命令行模式启动apache,并带上参数,apache会提示你哪句有误,然后就可以针对性的解决,命令如下: httpd.exe -w -n "Apache2" -k start
7. 有时即使使用了#pragma warning(disable: errnum)后还有警告,是因为把头文件放到预编译头中了,这种情况在使用STL中的<vector>或<map>后经常出现。
8. CreateThread 启动了一个线程,同时产生一个句柄让你好操纵这个线程,如果你不要用这个句柄了就CloseHandle关掉它。调用这个CloseHandle并不意味 着结束线程,而是表示不关心此句柄的状态了,也就无法控制子进程的线程了。如果需要关心,可以在子进程结束后再CloseHandle,但一定得 CloseHandle。操作系统内核管理内核对象的生命期,应用程序通过CloseHandle操作内核对象的引用计数,当引用计数由1降为0时,内核 负责销毁相应的内核对象。进程和线程都有一个内核对象与它们对应,操作系统通过内核对象管理进程和线程。当你在程序中,不需要再操作创建的线程时,就 CloseHandle掉,即便是那个线程目前计数为1,等你调用CloseHandle后该计数降为 0,但已经创建的线程并没有被马上撤消,而是等线程函数执行完毕后才撤消,或者是在线程函数执行完毕前整个进程结束,那么该线程也被撤消。
9. 如 果一个进程在写入数据库的时候,因为断电或者操作系统崩溃而突然的退出,没有来得及完成写操作,那么它就会留下一个数据库临时日志文件("hot journal"). 随后的进程在试图读取数据库的时候,如果发现这个文件存在就会用它来恢复数据库,从而保证数据库的完整性。
10. UCS-2和UCS-4只规定了代码点和文字之间的对应关系,并没有规定代码点在计算机中如何存储。规定存储方式的称为UTF(Unicode Transformation Format),其中应用较多的就是UTF-16和UTF-8了。
11. Unicode 编码方式:UCS(Unicode Character Set)-Unicode字符集。实现方式:UFT(UCS Transformation Format)-可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。UTF-8、UTF-16、UTF-32分 别以BYTE、WORD、DWORD作为编码单位。UTF-8的编码是字节流。UTF-8的特点是对不同范围的字符使用不同长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是4个字节。
12. 例 1:“汉”字的Unicode编码是0x6C49。0x6C49在0x0800-0xFFFF之间,使用用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将0x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
例2:Unicode编码 0x20C30在0x010000-0x10FFFF之间,使用用4 字节模板了:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx。将0x20C30写成21位二进制数字(不足21位就在前面补0):0 0010 0000 1100 0011 0000,用这个比特流依次代替模板中的x,得到:11110000 10100000 10110000 10110000,即F0 A0 B0 B0。
13. MBCS : 多字节字符集,是一种替代 Unicode 以支持无法用单字节表示的字符集(如日文和中文)的方法。为国际市场编程时应考虑使用 Unicode 或 MBCS,或使程序能够通过更改开关来生成支持两种字符集之一的程序。最常见的 MBCS 实现是双字节字符集 (DBCS)。一般来说,Visual C++(尤其是 MFC)完全支持 DBCS。
14. 关于字符集和编码我们必须明确一个概念,UTF-8是unicode字符集的一个编码方案,当我们在说到UTF-8字符和Unicode字符的时候,在某些 情况下,它们在逻辑上是等价的,但是,他们并不是同一个东西,因为Unicode字符在二进制上还有一个选择就是原生的UTF-16编码。
15. 代码页Codepage,codepage实际上是一张表,通常的codepage是一个从unicode到其他mbcs的转换索引表, 比如windows上常用的MS936代码页,实际上就是GB2312到unicode的转换表,我们知道,windows是完全基于unicode 的,MS的应用程序也大多是基于unicode开发的,他们对GB2312的支持,正是来源于codpage932,通过cp932的转换,应用程序可以 在unicode和gb2312之间来回转换。
16. UTF-8 的设计明显是用英文为主的西方人搞出来的东西。对于中文一点都不环保。所有汉字和中文标点都需要 3 个字节才能表达。而少量欧洲字母可以用 2 字节表达,英文的 ASCII 符号则可以只用单字节。
17. SOAP的构建模块:一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
* 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
* 可选的 Header 元素,包含头部信息
* 必需的 Body 元素,包含所有的调用和响应信息
* 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
SOAP的语法规则:这里是一些重要的语法规则:
* SOAP 消息必须用 XML 来编码
* SOAP 消息必须使用 SOAP Envelope 命名空间
* SOAP 消息必须使用 SOAP Encoding 命名空间
* SOAP 消息不能包含 DTD 引用
* SOAP 消息不能包含 XML 处理指令
SOAP 在默认的命名空间中 ("http://www.w3.org/2001/12/soap-envelope") 定义了三个属性。这三个属性是:actor、 mustUnderstand 以及 encodingStyle。
19. 如果一个进程在写入数据库的时候,因为断电或者操作系统崩溃而突然的退出,没有来得及完成写操作,那么它就会留下一个数据库临时日志文件("hot journal"). 随后的进程在试图读取数据库的时候,如果发现这个文件存在就会用它来恢复数据库,从而保证数据库的完整性.
120. UCS-2和UCS-4只规定了代码点和文字之间的对应关系,并没有规定代码点在计算机中如何存储。规定存储方式的称为UTF(Unicode Transformation Format),其中应用较多的就是UTF-16和UTF-8了。
21. 总结一下SOAP客户端开发的关键步骤
1.导入类型库
2.需要创建一个SoapConnector
3.下一步创建SoapSerializer
4.下一步把消息附加到SoapConnector的输入流
5.下一步读取结果.要读取服务器的回复,客户端应用需要使用SoapReader,
6.SoapReader被连接到SoapConnector输出流
7.用IXMLDOMElement对象可以从SoapReader里读到服务器的回复
22. Win32程序中为什么不能响应WM_KEYDOWN消息?
原来,我的窗体上有一个Button控件,我按下之后,窗口焦点(Focus)被它抢走了,所以我的主窗口就无法响应了。背后的原因是键盘是一个共享设备,所以Windows只让获得焦点的窗口能够响应键盘消息。并且Windows创建了一个system message queue储存键盘和鼠标消息,然后等应用程序处理完一个消息后,才把下一个消息放到应用程序的application's message queue 里。之所以要两个队列,是为了进行同步,使消息能够正确的分发到应用程序。比如当一个用户按键过快时,应用程序的处理速度可能赶不上用户按键的速度。如果用户按键的过程中切换了窗口焦点(比如按下ALT-TAB),那么接着的键盘消息就应该分发到新获得焦点的窗口去。如果只有一个消息队列则不能做到这一点。(参考《Programming Windows》第5版)
调用SetFocus(hWnd)解决问题。
23. SQLite删除前n条记录:delete from APLtb where upc in (select upc from APLTb limit 100);
24. VC中设置成UNICODE模式后要在Link->Category->Output->wWinMainCRTStartup输入这个
分享到:
相关推荐
MyBatis 是一个流行的 Java 持久层框架,它源于 Apache 的 iBatis 项目,并在 2010 年转到 Google Code,随后在 2013 年迁移至 Github。MyBatis 提供了一个简单而强大的 SQL 映射框架,它支持定制化 SQL、存储过程...
在给定的部分内容中提到的**ApacheActiveMQ笔记中国软件与技术服务股份有限公司-I-01689179ApacheActiveMQ笔记**,这是一份关于ActiveMQ的翻译笔记,记录了当时的产品版本为**v5.2**,最初发布于**2010年3月2日**。...
在上下册中,读者可以系统地学习到项目的生命周期、项目管理框架、关键术语、工具和技术以及最佳实践。这些内容旨在帮助读者理解和掌握项目管理的理论知识,提升实际操作能力。 个人笔记部分则是作者在研读教材和...
描述中提到“要做一个工具”,暗示我们这些笔记可能涉及到软件开发的基础技术,特别是对于初学者或者进行项目实践时非常有用的基础知识。标签“win32 MFC”进一步明确了主题,这意味着笔记主要关注Windows操作系统下...
### ECharts练习笔记知识点解析 #### 一、ECharts简介 ECharts 是一款由百度公司前端技术部开发的,基于 JavaScript 的数据可视化图表库。它提供了丰富的图表类型,支持多种交互方式,并且易于使用,适合展示大量...
2010年的排名为我们提供了当年顶级的技术配置,尽管现在已经过时,但对于理解计算机硬件的发展历程以及评估二手市场上的设备仍然有价值。 一、CPU排名 1. **Intel Core i7系列**:在2010年,Intel的Core i7系列是...
根据给定的文件信息,我们可以总结出以下详细的IT知识点,主要围绕计算机基础知识展开,包括计算机的特点、发展阶段、应用领域、硬件系统、微处理器历史及其技术特点等。 ### 计算机的特点 计算机拥有四大特点: 1...
- **频段**:TD-SCDMA使用的频段包括A频段(1880~1920 MHz)、B频段(2010~2025 MHz)以及C频段(2300~2400 MHz,目前尚未启用)。这些频段的选择旨在避免与其他移动通信系统的干扰。 - **多址接入方式**:TD-SCDMA...
802.1X-2010标准是无线局域网(WLAN)和有线局域网(LAN)安全接入的一个...通过深入学习这些技术,IT专业人员可以构建更加安全、可控的网络环境,防止未经授权的设备和用户接入网络,从而保护网络资源免受潜在的威胁。
计算机网络技术是信息技术的核心组成部分,2010年的计算机三级网络技术笔记涵盖了计算机的基本概念、发展历程、性能指标、应用领域,以及计算机系统和网络设备的相关知识。以下是对这些知识点的详细解析: 首先,...
根据给定的文件信息,以下是...通过以上分析,我们可以看到,“计算机三级2010-3月笔试部分笔记”不仅覆盖了计算机基础知识,还深入介绍了硬件系统、软件组成以及具体的技术细节,为备考者提供了全面而深入的学习材料。
【压缩包子文件的文件名称列表】:xiaobao编程笔记20100628,这个文件名暗示这是一份2010年6月28日创建或更新的笔记,可能记录了当时的技术趋势和最佳实践。尽管时间相对较早,但基础的Java开发概念和技术,如...
三级网络技术笔记是蛮全面的,我就是用它才考的比较胜利,希望给你们有帮助啊