
C和C++
C和C++相关
极杰子
这个作者很懒,什么都没留下…
展开
-
strtol()详解
i.e. string to longlong int strtol(const char *nptr, char **endptr, int base)strtol()会将nptr指向的字符串,根据参数base,按权转化为long int, 然后返回这个值。参数ba转载 2011-10-09 09:48:09 · 495 阅读 · 0 评论 -
浮点数的比较(1)
在数学运算当中经常会涉及到判断两个数是否相等的情况 对于整数很好处理 A==B这样的一个语句就可以解决全部的问题 但是对于浮点数是不同的 1.浮点数在计算机当中的二进制表达方式就决定了大多数浮点数都是无法精确的表达的 现在的计算机大部分都是数字计算机,不是模拟机,转载 2011-09-25 22:43:43 · 590 阅读 · 0 评论 -
String转化为整型
int MCR_COMMFUN::getIntFromString(CString szString){ int nGet = -2; if( -1 == szString.FindOneOf("0123456789") ) { return nGet;原创 2011-09-25 22:47:35 · 2029 阅读 · 0 评论 -
倒序顺序字符转化为Int型
(1)从倒序的字符转化成int型int MCR_COMMFUN::GetIntLittleEndian(unsigned char *buf){ int IntLittleEndian; IntLittleEndian = buf[ 0 ]; IntLittl原创 2011-09-25 22:46:05 · 587 阅读 · 0 评论 -
VC int 转 CString
一、使用atoi说明:itoa( int value, char *string, int radix ); 第一个参数:你要转化的int; 第二个参数:转化后的char*; 第三个参数:你要转化转载 2011-09-23 17:29:17 · 6591 阅读 · 1 评论 -
VC 字符串和数字转换函数
1.atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明转载 2011-09-25 22:34:51 · 863 阅读 · 1 评论 -
浮点数的比较(2)
1. 正数的情况 根据IEEE的内存结构, 指数在高位,尾数在低位,浮点数大的对应的把其内存结构按照整数来理解进行比较的时候,情况也是成立的,因此在这里如果把他们进行比较的话,作为整数运算效率会非常的高,比如 float f1 = 1.23;转载 2011-09-25 22:44:54 · 918 阅读 · 0 评论 -
showModalDialog 使用详解
showModalDialog 使用详解window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。 当我们用showModelessDialog()打开窗口时转载 2012-04-20 17:05:43 · 594 阅读 · 0 评论 -
sscanf
名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const转载 2011-09-20 16:44:58 · 469 阅读 · 0 评论 -
将stdout、stderr导入到指定文件
在编写程序中,经常用到stdout、stderr作为输出,通常stdout用于输出程序运行正常时的信息,stderr用于输出程序出错时的信息。我们可以通过一些命令将stdout、stderr在屏幕上的输出导入到指定的文件。1、准备工作带有stdout、stderr输出的test.cpp /* ** test.cpp */ #include #i转载 2012-02-22 11:07:29 · 844 阅读 · 0 评论 -
STL
STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语转载 2011-10-13 23:15:53 · 424 阅读 · 0 评论 -
ATL
ATL,Active Template Library活动模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。通过活动模板库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用。这种COM组件可以包含属性页、对话框等等控件。转载 2011-10-13 23:18:37 · 529 阅读 · 0 评论 -
memcpy-结构体的复制
一个memcpy的结构体的复制,类似于C++中调用类的拷贝构造函数,用一个对象去初始化另一个对象!#include "stdio.h"#include "string.h"void main(void){struct s1{ char *name; int age;}stu1={"wangqiao",24};struct student s2;原创 2011-11-09 15:08:28 · 18538 阅读 · 0 评论 -
sprintf 转 sprintf_s
将过去的工程用VS2005打开的时候。你有可能会遇到一大堆的警告:warning C4996。比如:warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNIN转载 2011-12-21 21:07:00 · 3158 阅读 · 0 评论 -
UpdateData()__MFC
一、总结UpdateData()函数UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户转载 2011-11-14 13:48:31 · 402 阅读 · 0 评论 -
如何对付内存泄漏
写出那些不会导致任何内存泄漏的代码。很明显,当你的代码中到处充满了new 操作、delete操作和指针运算的话,你将会在某个地方搞晕了头,导致内存泄漏,指针引用错误,以及诸如此类的问题。这和你如何小心地对待内存分配工作其实完全没有关系:代码的复杂性最终总是会超过你能够付出转载 2011-10-13 23:44:44 · 384 阅读 · 0 评论 -
内存陷阱 驯服C++中的野指针
如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄转载 2011-10-13 23:50:02 · 867 阅读 · 0 评论 -
浅议C++ 中的垃圾回收方法
许多 C 或者 C++ 程序员对垃圾回收嗤之以鼻,认为垃圾回收肯定比自己来管理动态内存要低效,而且在回收的时候一定会让程序停顿在那里,而如果自己控制内存管理的话,分配和释放时间都是稳定的,不会导致程序停顿。最后,很多 C/C++ 程序员坚信在C/C++ 中无法实现垃圾回收机制。这转载 2011-10-13 23:49:19 · 421 阅读 · 0 评论 -
浅谈C++中的内存管理
大家都知道变量的生存周期这个概念,可是有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的。文章举了四个不同的例子,来说明这其中的原因。 前言: 前一段时间在一个好友的的博客论坛上看到他学习C++时遇到的一小点问题,是关于C++中最基本的内存分配方面转载 2011-10-13 23:48:39 · 407 阅读 · 0 评论 -
C++中动态内存分配引发问题的解决方案
假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长,我们可以把数组大小设为200,但一般的情况下又不需要这么多的空间,这样是浪费了内存。对了,我们可以使用new操作符,这样是十分灵活的,但在类中就会出现许多意想不到的问转载 2011-10-13 23:43:32 · 674 阅读 · 1 评论 -
C/C++变量在内存中的分布
C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。#include #include int g_i = 100;int g_j = 200;int g_k, g_h;int main(){ con转载 2011-10-09 20:36:10 · 428 阅读 · 0 评论 -
控制C++的内存分配
在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C++对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。 这当然是个好事情,但是这种转载 2011-10-13 23:48:02 · 398 阅读 · 0 评论 -
C++内存管理
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器原创 2011-10-13 23:47:31 · 574 阅读 · 1 评论 -
C++内存管理详解
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们转载 2011-10-13 23:46:14 · 323 阅读 · 0 评论 -
浅谈C/C++内存泄漏及其检测工具
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class转载 2011-10-13 23:41:59 · 342 阅读 · 0 评论 -
菜鸟也能搞定C++内存泄漏
背景 C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员有了更广的发挥空间,也产生了代代相传的内存泄漏问题。对于新手来说,最常犯的错误就是new出一个对象而忘记释放,对于一般小应用程序来说,一点内存空间不算什么。但是当内存泄漏问题出现在需要2转载 2011-10-13 23:45:21 · 373 阅读 · 0 评论 -
C++内存对象大会战
如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄转载 2011-10-13 23:50:52 · 338 阅读 · 0 评论 -
CDatabase::Open() 和 CDatabase::OpenEx()
CDatabase::Openvirtual BOOL Open(LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE,转载 2011-10-11 13:17:58 · 13208 阅读 · 1 评论 -
在Access中执行SQL语句
Access在小型系统开发中等到了广泛使用。虽然Access提供了可视化的操作方法,但许多开发人员还是喜欢直接用SQL语句操作数据表。如何在Access中打开SQL视图,对于初次使用Access的程序员可得费点时间呢。1、ACESS2007(1)点击“创建”--点击 “查询设计”(2)点击关闭(3)点击左上角的"SQL视图"就可以打开SQL窗口了2、ACCESS 2转载 2011-11-04 17:32:21 · 1645 阅读 · 0 评论 -
CRecord::Open()
CRecordset类对象表示从数据源中选出的一组记录,该对象使用户能完成在记录间的滚动、更新、过滤、排序等操作。一般而言,都是利用类向导将CRecordset类的子类与数据库的某个表关联起来,8.2.1和8.2.2节就是这样做的。当功能简单时可以直接使用CRcordset类,以转载 2011-10-11 13:36:00 · 1938 阅读 · 0 评论 -
在VC++中用ODBC访问SQL Server数据库
ODBC(Open Database Connectivity,开放数据库连接)是由Microsoft定义的一种数据库访问标准,它提供了一种标准的数据库访问方法以访问不同数据库提供商的数据库,其本质上是一组数据库访问API.虽然数据库访问有多种方法,但ODBC以其编程相对简单,在实际编程中被广泛使用。 VC++中提供了一组封装了ODBC API的MFC ODBC类,以减少程序代码编写量。转载 2011-10-31 17:35:26 · 2532 阅读 · 0 评论 -
Visual Studio 2008快捷键之 文本选择快捷键
下列快捷组合键可在文本编辑器中用于在打开的文档中选择文本。命令名快捷键说明编辑.向左扩展一个字符Shift + 向左键将光标左移一个字符以扩展所选内容。编辑.向左扩展一个字符列Shift + Alt + 向左键将光标左移一个字符以扩展列选择。编转载 2011-11-22 09:23:41 · 679 阅读 · 0 评论 -
Visual Studio 2008快捷键之 控件操作快捷键
下列快捷组合键可用于在设计图面上移动和选择控件以及更改控件的大小。命令名快捷键说明编辑.下移控件Ctrl + 向下键在设计图面上,将选定的控件以 1 为增量向下移动。编辑.将控件移动到下侧网格向下键在设计图面上,将选定的控件以 8 为增量向下移动。转载 2011-11-22 09:25:02 · 462 阅读 · 0 评论 -
Visual Studio 2008快捷键之 文本操作快捷键
下列快捷组合键可在文本编辑器中用于在打开的文档中删除、移动或者格式化文本。命令名快捷键说明编辑.分行Enter - 或 -Shift + Enter插入一个新行。注意:在某些编辑器中,如 HTML 设计器的“设计”视图,Enter 的行为会随上下文环境的不同而有所不同转载 2011-11-22 09:21:59 · 479 阅读 · 0 评论 -
VC++ 6.0 转VS2005以上版本(2)
最近开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,特将碰到的问题归纳如下:1消息映射VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过a. ON_MESSAGE(message,OnMyMessage); OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMess转载 2011-11-14 15:20:30 · 1818 阅读 · 1 评论 -
VC++6.0 转 VS2005以上版本(1)
AutoPDMS8.0源码使用高版本ObjectARX(2004/2007)编译的总结以下是引用uesoft在2007-11-21 15:14:29的发言:原文作者:杨志军,长沙优易软件开发有限公司CAD部AutoPDMS8.0源码使用高版本ObjectARX(2004/2007)编译的总结一、开始编译之前1. ObjectARX 2002工程向ObjectARX 2004转载 2011-11-14 15:06:43 · 3254 阅读 · 0 评论 -
VC CString类
1.CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符转载 2011-09-25 22:37:25 · 668 阅读 · 1 评论 -
VC ComboBox使用
一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。2. 在程序初始化时动态添加 如: //控件内容初始化 CString strTemp;转载 2011-09-25 22:39:28 · 843 阅读 · 1 评论 -
VC Radio控件
一:Radio基本用法 1.建立一个基于对话框的用用程序,在其中加入三个Radio Button,ID分别为: IDC_RADIO1,IDC_RADIO2,IDC_RADIO3 2.控件的初始化: 在对话框类的转载 2011-09-25 22:42:21 · 3509 阅读 · 0 评论 -
ClassWizard__MFC
前面我们利用AppWizard创建了一个应用程序框架,它除了显示一个Windows的多文档界面以外,目前还没有任何实际的用处,我们必须为它添加实际的功能。事实上,大多数Visual C++程序员都是在这个应用程序框架的基础上从事添加各种功能模块的工作,包括设计自己的类,编写具有一定功能的成员函数。Visual C++的集成开发环境向用户提供了一个功能很强的操作类的工具—ClassWizard,转载 2011-11-14 13:50:22 · 743 阅读 · 0 评论