摘要: 鼠标未离开窗口区域 产生MouseLeave消息 阅读全文
posted @ 2011-06-10 14:59 Livesss 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。正是利用union这个公用同块地址的特点可以有很多的用途。1.CPU大小端的测试首先了解下大小端模式:大端模式 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;小端模式 所谓的... 阅读全文
posted @ 2011-06-05 01:59 Livesss 阅读(7919) 评论(0) 推荐(4) 编辑
摘要: C/C++ 通用 MakefileGeneric Makefile for C/C++ Program==================================================Keywords: Makefile, make, Generic, C/C++Author: whyglinux (whyglinux AT hotmail DOT com)Date: 2006-03-04==================================================本文提供了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefil 阅读全文
posted @ 2011-05-29 23:40 Livesss 阅读(3171) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>void main(){ char *p = NULL,*str = "aafg" ,aa[10] = "abc"; p = strcpy(str,aa); printf("%s/n",p );} 定义了一个指向字符串的指针,str是在栈上分配的变量,储存的地址对应的是在常量区中分配的空间。"aafg"是存储在常量区里面,是不能改变的。char *str 其实存在一种 const char *类型的隐式转换,而strcpy要做的改变常量,所以程序编译的时候没错,运行的 阅读全文
posted @ 2011-05-16 12:57 Livesss 阅读(330) 评论(0) 推荐(0) 编辑
摘要: #include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,并且能够指出错误在哪行,然后马上终止程序,有点if判断的味道。#include <stdio.h>#include <assert.h>int main(){ char *p; char a[] ={"china"}; p = (char *)malloc(strlen(a)+1); p = a; printf(" 阅读全文
posted @ 2011-04-30 23:13 Livesss 阅读(144) 评论(0) 推荐(0) 编辑
摘要: UINT port = 2000;char szIP[20] = "127.0.0.1"; WSADATA wsaData; //初始化Socket库 WSAStartup(MAKEWORD(2,0),&wsaData); //我们使用的WinSock版本 MAKEWORD(2,0) SOCKET sListen = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); int iAddrSize; //当创建了一个套接字后,必须把套接字与你需要进行通讯的地址建立联系 SOCKADDR_IN Local, client; //结构体 .. 阅读全文
posted @ 2011-04-24 18:11 Livesss 阅读(1654) 评论(0) 推荐(0) 编辑
摘要: 现象:在vs2008中,建立一个空项目,添加一个c++文件main.cc#include<iostream>using namespace std;int main(){cout << "hello"<<end;return 0;s}该程序能够编译得过,但是执行,无论是debug还是release,都很出现“无法找到“xxx.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。”从网上找了一些解答,终于把这个问题给解决了。只要是“建立项目的时候不应建立空项目,而应当建立一个“win32控制台应用程序”。这样确实可以解决问 阅读全文
posted @ 2011-04-24 16:42 Livesss 阅读(17346) 评论(1) 推荐(0) 编辑
摘要: 今天看到一篇关于GTK+和MFC对比的文章,学GTK+编程的来看看MFC已经江河日下,日渐式微,而GTK+可谓欣欣向荣,如日中天。这里无意于落井下石,痛打落水狗,贬MFC而尊GTK+。自己即在使用MFC也在使用 GTK+,不会偏袒其中之任何一方。这个对比完全出于个人对两者的理解,说它是不完全对比,一方面只是一时兴起想做个笔记而已,另外一方面我对两者的理解 也是有限的。1. 两者都是基于面向对象设计的。尽管MFC是用C++写的,而GTK+是用C写的,但思想都是面向对象的。GTK+使用glib的对象机制,由于用C写的,其实现相对有点繁琐。2. 两者都是基于消息驱动的。这是GUI系统的共性,... 阅读全文
posted @ 2011-04-18 13:34 Livesss 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 数组访问数组和指针访问数组的区别:char a[] = "abcdef"; char *p = "abcdef";数组的访问是通过先获取数组的首地址,然后通过相对的偏移量来获取地址,通过地址读出内容;指针的访问形式:假设指针本身的地址是4624,先是存储变量是4624的内容,假设是5081,取得i的值算出5081+i的值然后读取该地址的内容,也就是说指针访问数组的多了一次额外的提取。指针保存的是数据的地址,间接来访问数据,首先获得是存储的内容,将其作为地址,然后通过地址提取数据。而数组a[i]只是简单的以a+i为地址取得数据。数组指针和指针数组的区别:i 阅读全文
posted @ 2011-04-03 18:56 Livesss 阅读(177) 评论(0) 推荐(0) 编辑
摘要: /* -------------------------------------------------------------------------** File : cexcept.c *** Coder: Spark Song. * ** Note : Use the example code from 《C Interfaces and Implementations》 ... 阅读全文
posted @ 2011-03-27 21:54 Livesss 阅读(2364) 评论(0) 推荐(0) 编辑