« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
☆★☆★☆★☆★☆★☆ 生活的点点记录,以及一些体会...........
喜欢是淡淡的爱,爱是深深的喜欢.
时间会见证一切.......................
欢迎大家指出错误,共同进步..........
期待中..............................
☆★☆★☆★☆★☆★☆ |
Blog信息 |
blog名称: 日志总数:162 评论数量:312 留言数量:0 访问次数:939695 建立时间:2005年5月17日 |

| |
[work]Big Endian与little Endian 文章收藏
oceanblue 发表于 2009/4/22 12:44:18 |
谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢?
其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。
用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:
Big Endian
< |
|
[Database]vc连接ado的方法 文章收藏
oceanblue 发表于 2009/4/9 20:50:23 |
准备工作
(1)、引入ADO类
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF" |
|
[读书笔记]mfc小结 原创空间
oceanblue 发表于 2009/4/6 22:26:44 |
两个都要设置才能去掉help button:
Sheet:
CPropertySheet bb;
bb.m_psh.dwFlags |= PSH_NOAPPLYNOW|PSH_HASHELP; bb.m_psh.dwFlags &= ~PSH_HASHELP;
Page:
m_psp.dwFlags &= ~PSP_HASHELP; |
|
[读书笔记]解决窗口刷新闪烁 文章收藏
oceanblue 发表于 2009/4/5 19:20:33 |
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。
先来谈谈闪烁产生的原因
原因一: 如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕 上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。
一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。
这样问题就来了,一般画图都是先画背景色,然后再把内容画上去,如果这两次操作不在同一个 刷新周期内完成,那么给人的视觉感受就是,先看到只有背景色的图像,然后看到画上内容的图像, 这样就会感觉闪烁了。
解决方法:尽量快的输出图像,使输出在一个刷新周期内完成,如果输出内容很多比较慢,那么采用 内存缓冲的方法,先把要输出的内容在内存准备好,然后一次输出到显存。要知道一次API调用一般可以 在一个刷新周期内完成。
对于GDI,用创建内存DC的方法就可以了
原因二: |
|
[读书笔记]GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen 文章收藏
oceanblue 发表于 2009/4/4 11:50:45 |
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。 用GetClientRect返回的RECT结构上左为零, 右下分别对应客户区的宽度和高度;
ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标. 我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。 然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。 显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。
对GetWindowRect取得的矩 |
|
[Database]使用ADO可以访问MySQL,方法如下 原创空间
oceanblue 发表于 2009/3/31 21:19:10 |
使用ADO可以访问MySQL,方法如下: 1、先到MySQL的网站下载MySQL ODBC驱动程序。 下载地址:http://dev.mysql.com/downloads/connector/odbc/3.51.html 你可以选择 Windows (x86) MSI Installer 3.51.14 2.3M 这个选项 2、安装驱动程序,下载后的文件就是一个msi文件,直接运行即可 3、打开管理工具--> ODBC数据源,配置一个你需要的ODBC DSN(数据源) 4、使用标准的ADO来进行操作即可。
不过上面只是如何安装驱动程序。真正要做的还是要求你会使用ADO,因为ADO的用法对于所有的数据库都是一样的。
ADO不提供直接访问mysql数据库的驱动,你需要安装Mysql的驱动。或者安装一个mysql for odbc,设置一个mysql的ODBC驱动,然 |
|
[Database]ADO数据库连接 原创空间
oceanblue 发表于 2009/3/25 9:13:20 |
1、导入库文件
使用ADO前必须在工程的stdafx.h文件最后用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下: #import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")
ADO类的定义是作为一种资源存储在ADO DLL(msado15.dll)中,在其内部称为类型库。类型库描述了自治接口,以及C++使用的COM vtable接口。当使用#import指令时,在运行时Visual C++需要从ADO DLL中读取这个类型库,并以此创建一组C++头文件。这些头文件具有.tli 和.tlh扩展名,读者可以在项目的目录下找到这两个文件。在C++程序代码中调用的ADO类要在这些文件中定义。 程序的第三行指示ADO对象不使用名称空间。 |
|
[读书笔记]C#:代表(delegate)和事件(event) (转) 文章收藏
oceanblue 发表于 2009/3/22 21:01:06 |
代表(delegate):
它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:
声明一个delegate对象。
实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。
产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。
请看下面例子:
using System; using System.Collections.Generic; using System.Text;
namespace UsingDelegate { public delegate void MyDelegate(string mydelegate);//声明一个delegate对象
|
|
[读书笔记]enum类型的本质 文章收藏
oceanblue 发表于 2009/1/17 20:30:58 |
enum类型的本质 至从C语言开始enum类型就被作为用户自定义分类有限集合常量的方法被引入到了语言 当中,而且一度成为C++中定义编译期常量的唯一方法(后来在类中引入了静态整型常量)。 根据上面对enum类型的描述,到底enum所定义出来的类型是一个什么样的类型呢?作为 一个用户自定义的类型其所占用的内存空间是多少呢?使用enum类型是否真的能够起到有限 集合常量的边界约束呢?大家可能都知道enum类型和int类型具有隐示(自动)转换的规则, 那么是否真的在任何地方都可以使用enum类型的变量来代替int类型的变量呢?下面会逐一 回答这些问题。 |
|
|