随笔分类 -  C/C++

摘要:1 dasusr1 DB2 管理服务器用户是管理DAS(Database Adminitrator Service)。要完全适用db2 cc 必须启动DAS。DB2 管理服务器(DAS)响应来自 DB2 管理工具和配置助手(CA)的请求。DB2 管理服务器用户的用户标识用于运行系统上的 DB2 管理服务器(DAS)。缺省用户为 dasusr1,缺省组为 dasadm1。DB2 GUI 工具也会使用此用户标识来对本地服务器数据库实例和数据库执行管理任务。每台计算机上只能有一个 DAS。一个 DAS 服务一个或多个数据库实例,包括属于不同安装的数据库实例。DAS 可以维护其发行版级别低于 DAS 阅读全文
posted @ 2013-10-18 11:47 问笑 阅读(643) 评论(0) 推荐(0)
摘要:解析雅虎与百度流氓原理- 为什么“浏览器劫持”能够如此猖狂呢?放眼众多论坛的求助贴,我们不时可以看到诸如“我的IE被主页被改了,我用杀毒工具扫了一遍都没发现病毒,我把主页改回自己的地址,可是一重启它又回来了!”、“我的系统一开机就跳出一个广告,我明明用了最新版的杀毒软件的啊!”等这类关于IE异常问题的求助,80%的提问者都表示纳闷,他们已经安装了杀毒软件,可是IE仍然被“黑”了,这又是为什么? 其实这些都是典型的“浏览器劫持”现象,但是受害者不是已经安装了杀毒软件吗?为什么浏览器依然躲不过这只黑手?许多用户对这个领域都存在一种误区心理:浏览器劫持?我有最新的杀毒软件,我不怕! 于是,当他们.. 阅读全文
posted @ 2013-09-30 07:54 问笑 阅读(488) 评论(0) 推荐(0)
摘要:问题描述:假设有两个整数A=8,B=9 ,现在要交换A和B的值,使得A=9,B=8.原理分析:方法一:利用一个辅助空间C,然后先将A中的数据放在C中,然后再将B中的数据放到A中,最后再将C中的数据放到A中,这样就可以实现数据的交换了。C语言代码实现(子函数):点击(此处)折叠或打开void swap1(datatype *a,datatype *b){datatype tmp=*a;*a=*b;*b=tmp;}方法二:为了节省一个辅助空间,首先将A+B的和存储在A中,这一步可能会出现溢出的问题,所以这个方法不是很好的做法,不过这个方法提供了一个思路。然后将改变后的A减去B赋值给B,这样B中存放 阅读全文
posted @ 2013-09-11 19:13 问笑 阅读(450) 评论(0) 推荐(0)
摘要:void func1(char a[]){printf("%d",sizeof(a));}void main(){char b[55];func1(b);}输出为4,说明传递的参数数组自动退化为同类型的指针,这个例子中不论数组的容量为多少,sizeof(a)始终等于sizeof(char *)。C语言中的数组和指针总保持着'千丝万缕'的联系,这里仅针对数组作为函数实参时的情况做些说明^_^。C语言中的数组可分为一维数组和多维数组两类,而多维数组中又以二维数组最为常见。这里也仅针对这一维数组和二维数组作简要说明。看过'高质量C++编程指南'的人 阅读全文
posted @ 2013-09-11 14:11 问笑 阅读(267) 评论(0) 推荐(0)
摘要:1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windows平台的稳定性和安全性影响了sql server的稳定性和安全性 2). oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 微观上: 从数据类型,数据库的结构等等回答 2. 如何使用Oracle的游标? 1). oracle中的游标分为显示游标和隐式游标 2). 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录 阅读全文
posted @ 2013-09-04 22:49 问笑 阅读(626) 评论(0) 推荐(0)
摘要:一、调试基础调试快捷键F5: 开始调试Shift+F5: 停止调试F10: 调试到下一句,这里是单步跟踪F11: 调试到下一句,跟进函数内部Shift+F11:从当前函数中跳出Ctrl+F10:调试到光标所在位置F9: 设置(取消)断点Alt+F9:高级断点设置跟踪调试1、尽量使用快捷键时行调试2、观察调试信息3、高级中断设置异常调试重试->取消->调试函数堆栈,用variables或者call stack 窗口Release调试1、经常测试你的Debug和Release版本2、不要移除调试代码,如用ASSERT, TRACE等。3、初始化变量,特别是全局变量,malloc的内存, 阅读全文
posted @ 2013-09-03 09:02 问笑 阅读(424) 评论(0) 推荐(0)
摘要:C++ 的一个 比较晦涩难懂的特点是你可以重载 new 操作符,并且你甚至可以给它附加参数。通常,操作符 new 只接受拟分配对象的大小: void* operator new(size_t nAlloc) { return malloc(nAlloc); } 但你也可以随心所欲附加参数来重载 new 操作符,只要在调用 new 时候提供这些参数即可。在各种应用程序向导(App Wizards)中,这 是 MFC 所做的事情。一个典型的 MFC 程序(.cpp)文件顶部都有下面这样的代码行,通常都由应用程序向导生成: #ifdef _DEBUG #define new DEBUG_NEW .. 阅读全文
posted @ 2013-09-03 00:02 问笑 阅读(443) 评论(0) 推荐(0)
摘要:Windows 应用程序所要做的每项工作几乎都是基于消息处理的, Windows 系统消息分为常用 Windows 消息,控件通知消息和命令。然而,有时我们需要定义自己的消息来通知程序什么事情发生了,这就是用户自定义消息。 ClassWizard 并没有提供增加用户自定义消息的功能,所以要使用用户自定义消息,必须手工编写代码。然后 ClassWizard 才可以象处理其它消息一样处理你自定义的消息。具体做法如下详解: 第一步:定义消息。一个消息实际上是开发 Windows95 应用程序时, Microsoft 推荐用户自定义消息至少是 WM_USER+100 ,因为很多新控件也要使用 WM.. 阅读全文
posted @ 2013-09-02 23:27 问笑 阅读(824) 评论(0) 推荐(0)
摘要:引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。 内存映射文件 内存映射文件与虚拟内存有些类似,通过内存映射文件可以... 阅读全文
posted @ 2013-08-30 22:38 问笑 阅读(4703) 评论(0) 推荐(1)
摘要:Operator precedence and associativity-运算符的优先级和结合性,下表是C语言的运算符优先级和结合性表格优先级我就不说了,表中写的很清楚,说一下结合性。运算符的结合性运算符的结合性是指相同优先级的运算符在同一个表达式中,且没有括号的时候,运算符和操作数的结合方式,通常有从左到右结合和从右到左结合两种方 式。举个例子,假设~是一个运算符,又有表达式a~b~c,如果~是左结合的,那么该表达式被解析为(a~b)~c,如果~是右结合的,那么该表达式将被 解析为a~(b~c)。比如上表中三目运算符?:是从右向左结合的,那么下面的表达式a > b ? b > 阅读全文
posted @ 2013-08-30 16:21 问笑 阅读(549) 评论(0) 推荐(0)
摘要:“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。 二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身... 阅读全文
posted @ 2013-08-30 11:49 问笑 阅读(201) 评论(0) 推荐(0)
摘要:这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数。参考帖子如下:(1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba10-41616d16f07e.html(2)http://www.cppblog.com/deercoder/articles/107132.html这两篇帖子是比较经典的,能够回答我的问题。但是如何动态创建消息响应函数呢?这需要利用另外一个命令:ON_COMMAND_RANGE参考如下帖子:http://topic.csdn.net/t/20020728/22/906766.html注意:ON_C 阅读全文
posted @ 2013-08-30 11:19 问笑 阅读(658) 评论(0) 推荐(0)
摘要:最近在学习表达式求值问题,想使用C++或C语言实现一个带圆括号的十进制正整数的表达式求值控制台程序。这个问题可以通过栈或者二叉树遍历来解决。记 得以前在学校学习数据结构中栈的应用时看到过,另外编译原理这门课也有讲过。重新翻开>一书的P80~P83第3张有关栈相应的章节时,有一个无括号算术表达式的求值问题,其次在对应的光盘上课程设计里头有表达式求值的 相关描述,这里记录如下:[问题描述]一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如 阅读全文
posted @ 2013-08-28 10:08 问笑 阅读(881) 评论(0) 推荐(0)
摘要:由于匈牙利风格信息冗余,并与编码规范的其它条款冲突,所以它的存在仅限于VC中。 下面是它的命名部分规则: 1. 类的命名 C+首字母大写的单词组合,通常是名字性短语,一般不含下划线 如CMyClass 2 函数(类成员函数) 首字母大写的单词组合,通常是动宾结构的短语一般不含下划线 如 GetName(), PostMessage(),SaveProfile()等 3 成员变量 m_开头,小写的类型标记标记+首字母大写的单词组合,通常是名字性短语 其中,小写的类型标记,DWORD简写为dw,int 记为 i, usigned int记为u或n,HANDLE记为h,Window记为wnd, 以0 阅读全文
posted @ 2013-08-28 09:26 问笑 阅读(709) 评论(0) 推荐(0)
摘要:1 常见命名规则 比较著名的命名规则首推匈牙利命名法, 这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。 其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀; 前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量。 骆驼(Camel)命名法近年来越来越流行, 在许多新的函数库和Java这样的平台下使用得当相多。 骆驼命名法,正如它的 阅读全文
posted @ 2013-08-28 09:16 问笑 阅读(270) 评论(0) 推荐(0)
摘要:在SDK中使用非模态对话框时的几个问题: 1、为什么要调用IsDialogMessage?? 2、非模态对话框与主窗口有什么区别? 3、如果不调用IsDialogMessage,消息能不能传递到对话框? 4、如果一定要调用IsDialogMessage,那么如果有多个非模态对话框的话,是否对每一个非模态对话框都必须单独调用 IsDialogMessage?如果真是这样,MFC是如何处理的?因为MFC隐藏了主消息循环,我如何增加对IsDialogMessage的调用?在SDK中使用非模态对话框时,主循环中必须插入下列代码:1.while(GetMessage(&msg,NULL,0,0) 阅读全文
posted @ 2013-08-26 20:10 问笑 阅读(870) 评论(0) 推荐(0)
摘要:探索Win32系统之窗口类(Window Classes in Win32)Kyle MarshMicrosoft Developer Network Technology GroupMSDN技术组摘要本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化。在本文中,"类","窗口类"这两个术语等同,都不是指C++类,而是指和窗口相关的一组信息的集合。简介窗口类的风格决定了窗口的外观和风格。所有的窗口都会属于某一个窗口类。在创建一个窗口之前,必须注册(register)一个相应的窗口类。32位Window 阅读全文
posted @ 2013-08-25 22:14 问笑 阅读(358) 评论(0) 推荐(0)
摘要:前幾天逛msdn,看了一下關於window class的介紹,發現有些東西沒有注意到的,特此翻譯窗口類的類別:有三種——systemClasses、Application Global Classes、Application Local Classes這三種的不同在于作用域以及何時、如何注冊和銷毀方面。SysTemClasses所謂的SystemClasses,是指那些已經由windows預先注冊的類——windows標準控件的窗口類就是他們。由于是系統注冊了這些類,因此用戶無法銷毀他們。當一個進程的線程第一次開始呼叫GDI函數時,系統就會為這個進程注冊這些systemClasses。每個應用 阅读全文
posted @ 2013-08-25 21:45 问笑 阅读(204) 评论(0) 推荐(0)
摘要:MFC(VC6.0)的CWnd及其子类中,有如下三个函数: classCWnd:publicCCmdTarget{public: virtualBOOLPreCreateWindow(CREATESTRUCT&cs);virtualvoidPreSubclassWindow();BOOLSubclassWindow(HWNDhWnd);}; 让人很不容易区分,不知道它们究竟干了些什么,在什么情况下要改写哪个函数? 想知道改写函数?让我先告诉你哪个不能改写,那就是SubclassWindow。Scott Meyers的杰作>的第36条是这样的Differentiate betwee 阅读全文
posted @ 2013-08-24 20:35 问笑 阅读(526) 评论(0) 推荐(0)
摘要:(1) 在CYournameView(就是你的视图类,以下以CDrawLineView为例)添加了一个背景颜色变量COLORREF m_bgcolor;(2)修改这个函数:BOOL CDrawLineView::PreCreateWindow(CREATESTRUCT& cs){// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT cs cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,(HBRUSH)::GetSto 阅读全文
posted @ 2013-08-23 23:42 问笑 阅读(1765) 评论(0) 推荐(0)