<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>一个咸蛋的唠叨</title><link>http://blog.vckbase.com/saltyegg/</link><description>蓦然回首，那人却在灯火阑珊处</description><managingEditor>一个咸蛋的唠叨</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>VC2005对CListCtrl的支持问题</title><link>http://blog.vckbase.com/saltyegg/archive/2006/09/14/22405.html</link><pubDate>Thu, 14 Sep 2006 03:06:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/09/14/22405.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/22405.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/09/14/22405.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/22405.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/22405.html</trackback:ping><description>&lt;P&gt;今天我用VC2005建了一个基于对话框的程序，在对话框里加了个List Control，编译没问题，Debug的时候报错说找不到MFC80UD.DLL，但是我前些天用CListView写的一个程序并没有这个问题，Google了一下找到几个答案，说得很费解，后来我直接在工程里加了一个从CListView派生的类再删掉程序就正常了。发现stdafx.h文件里多了这么些东西：&lt;/P&gt;
&lt;P&gt;#ifdef _UNICODE&lt;BR&gt;#if defined _M_IX86&lt;BR&gt;#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")&lt;BR&gt;#elif defined _M_IA64&lt;BR&gt;#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")&lt;BR&gt;#elif defined _M_X64&lt;BR&gt;#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")&lt;BR&gt;#else&lt;BR&gt;#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")&lt;BR&gt;#endif&lt;BR&gt;#endif&lt;/P&gt;
&lt;P&gt;估计这些语句添加了那些支持项吧。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/22405.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>今天SetWindowLong这函数帮了我大忙了</title><link>http://blog.vckbase.com/saltyegg/archive/2006/09/13/22399.html</link><pubDate>Wed, 13 Sep 2006 15:52:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/09/13/22399.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/22399.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/09/13/22399.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/22399.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/22399.html</trackback:ping><description>&lt;P&gt;由于写程序的需要，今天试着封装了一个窗口，遇到的一个问题是我的hwnd封装在一个类里，但是由于WndProc必须声明为类的静态方法或全局函数，所以存在可能会有类的很多个实例共用一个WndProc的情况，这样我想要修改一个hwnd所在的类中的变量就没办法了，WndProc又是由系统调用的，没有办法传递一个指针什么的过去。&lt;/P&gt;
&lt;P&gt;后来花了好长时间思索这问题，心想要是hwnd能附带自定义的信息就好了，哪怕是4个字节。Google+翻以前搜集的电子资料终于找到了SetWindowLong这函数，使用前提是注册窗口类时把cbWndExtra设为12或以上，这样就能用DWL_USER这个参数把自己想要的指针存到窗口的附加信息里了，在WndProc里用GetWindowLong函数可以取出来。&lt;/P&gt;
&lt;P&gt;赞M$一个。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/22399.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>SQL速查手册</title><link>http://blog.vckbase.com/saltyegg/archive/2006/08/22/22043.html</link><pubDate>Tue, 22 Aug 2006 13:53:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/08/22/22043.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/22043.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/08/22/22043.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/22043.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/22043.html</trackback:ping><description>&lt;P&gt;今天在网上搜到的好东西，收藏之。。。&lt;/P&gt;
&lt;P&gt;●SQL定义：SQL是一种面向数据库的通用数据处理语言规范，能完成以下几类功能：提取查询数据，插入修改删除数据，生成修改和删除数据库对象，数据库安全控制，数据库完整性及数据保护控制。 &lt;/P&gt;
&lt;P&gt;●SQL分类： &lt;BR&gt;DDL&amp;#8212;数据定义语言（CREATE，ALTER，DROP，DECLARE） &lt;BR&gt;DML&amp;#8212;数据操纵语言（SELECT，DELETE，UPDATE，INSERT） &lt;BR&gt;DCL&amp;#8212;数据控制语言（GRANT，REVOKE，COMMIT，ROLLBACK） &lt;/P&gt;
&lt;P&gt;●SQL数据类型 &lt;BR&gt;CHAR()：定长字符串 最大长度为 254 &lt;BR&gt;VARCHAR()：变长字符 最大长度为 4000 &lt;BR&gt;SMALLINT：短整型数字 长度为 2 字节 &lt;BR&gt;INTEGER：整型数字 长度为 4 字节 &lt;BR&gt;REAL：单精度浮点 32 位近似值 &lt;BR&gt;DOUBLE：双精度浮点 64 位近似值 &lt;BR&gt;DECIMAL(m,n)：数字 精度为m小数位为n &lt;BR&gt;DATE：日期时间 &lt;BR&gt;TIME：日期时间 &lt;BR&gt;TIMESTAMP：日期时间 &lt;/P&gt;
&lt;P&gt;●数据库定义语言： &lt;BR&gt;CREATE：用于创建数据库对象。 &lt;BR&gt;DECLARE：除了是创建只在过程中使用的临时表外，DECLARE语句和CREATE语句非常相似。唯一可以被声明的对象是表。并且必须放入用户临时表空间。 &lt;BR&gt;DROP：可以删除任何用CREATE（数据库对象）和DECLARE（表）创建的对象。 &lt;BR&gt;ALTER：允许修改某些数据库对象的信息。不能修改索引。 &lt;/P&gt;
&lt;P&gt;●下面主要基于对象介绍基本的语法： &lt;/P&gt;
&lt;P&gt;1、数据库： &lt;BR&gt;创建数据库：CREATE DATABASE database-name [USING CODESET codeset TERRITORY territory] &lt;BR&gt;注：代码页的问题。 &lt;BR&gt;删除数据库：drop database dbname &lt;/P&gt;
&lt;P&gt;2、表： &lt;BR&gt;⑴创建新表： &lt;BR&gt;create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) &lt;BR&gt;根据已有的表创建新表： &lt;BR&gt;A：create table tab_new like tab_old &lt;BR&gt;B：create table tab_new as select col1,col2&amp;#8230; from tab_old definition only &lt;BR&gt;⑵修改表： &lt;BR&gt;增加一个列: &lt;BR&gt;Alter table tabname add column col type &lt;BR&gt;注：列增加后将不能删除。DB2中列加上后数据类型也不能改变，唯一能改变的是增加varchar类型的长度。添加主键： &lt;BR&gt;Alter table tabname add primary key(col) &lt;BR&gt;删除主键： &lt;BR&gt;Alter table tabname drop primary key(col) &lt;BR&gt;删除表：drop table tabname &lt;/P&gt;
&lt;P&gt;3、表空间： &lt;BR&gt;创建表空间：create tablespace tbsname pagesize 4k managed by database using (file &amp;#8216;file&amp;#8217; size) &lt;BR&gt;表空间加入容器：alter tablespace tablespace_name add(file 'filename' size) &lt;BR&gt;注：该操作是不可逆的，加入容器后将不能将其删除，因此在加入的时候注意。 &lt;BR&gt;删除表空间：drop tablespace tbsname &lt;/P&gt;
&lt;P&gt;4、索引： &lt;BR&gt;创建索引：create [unique] index idxname on tabname(col&amp;#8230;.) &lt;BR&gt;删除索引：drop index idxname &lt;BR&gt;注：索引是不可更改的，想更改必须删除重新建。 &lt;/P&gt;
&lt;P&gt;5、视图： &lt;BR&gt;创建视图：create view viewname as select statement &lt;BR&gt;删除视图：drop view viewname &lt;BR&gt;注：视图唯一能修改的是引用类型列，改变列的范围。其他定义好了都不能修改。当视图基于的基表drop后，视图变为无效。&lt;/P&gt;
&lt;P&gt;●数据库操纵语言： &lt;BR&gt;SELECT：从表中查询符合数据 &lt;BR&gt;DELETE：删除已有表的数据 &lt;BR&gt;UPDATE：更新已有表的数据 &lt;BR&gt;INSERT：向已有表中插入数据 &lt;/P&gt;
&lt;P&gt;1、select时，注意索引谓词和非索引谓词，尽量在有索引的列上使用索引谓词。 &lt;BR&gt;谓词类型 可索引 注 释 &lt;BR&gt;Col∝con Y ∝代表&amp;gt;,&amp;gt;=,=,&amp;lt;=,&amp;lt;,但是&amp;lt;&amp;gt;不是可索引的。 &lt;BR&gt;Col between con1 and con2 Y 在匹配系列中必须是最后的。 &lt;BR&gt;Col in list Y 仅对一个匹配列 &lt;BR&gt;Col is null Y &lt;BR&gt;Col like &amp;#8216;xyz%&amp;#8217; Y 模糊匹配%在后面。 &lt;BR&gt;Col like &amp;#8216;%xyz&amp;#8217; N 模糊匹配%在前面。 &lt;BR&gt;Col1∝Col2 N Col1和col2来自同一个表 &lt;BR&gt;Col∝Expression N 例如：c1（c1+1）/2 &lt;BR&gt;Pred1 and Pred2 Y Pred1和Pred2都是可索引的，指相同索引的列 &lt;BR&gt;Pred1 or Pred2 N 除了（c1=a or c1=b）外，他可以被认为是c1 in（a，b） &lt;BR&gt;Not Pred1 N 或者任何的等价形式：Not between,Not in,Not like等等。 &lt;/P&gt;
&lt;P&gt;使用索引的例子介绍： &lt;/P&gt;
&lt;P&gt;&amp;lt;1&amp;gt;、单个表上索引查询的介绍 ： &lt;BR&gt;A：select * from t1 where c1 = 10； &lt;BR&gt;在c1列上无索引，如何检索 &lt;BR&gt;在c1列上有索引，如何检索 &lt;BR&gt;B：select * from t1 where c1 =10 and c2 between 5 and 10 and c3 like &amp;#8216;A%&amp;#8217; &lt;BR&gt;仅在c1列上有索引 &lt;BR&gt;在c1,c2和c3列上有单独的索引 &lt;BR&gt;在c1，c2和c3列上有联合索引 &lt;BR&gt;此处可以填加索引匹配规则和高级规则，比较难理解！！ &lt;/P&gt;
&lt;P&gt;&amp;lt;2&amp;gt;、两个或多个表上索引查询的介绍： &lt;BR&gt;(1)、使用循环嵌套法执行查询 &lt;BR&gt;A：select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t1.c2 =t2.c3 &lt;BR&gt;介绍查询的方法，看看哪列上最需要索引。 &lt;BR&gt;B：select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4 = 10 and t1.c2 =t2.c3 &lt;BR&gt;(2)、使用归并连接执行连接查询 &lt;BR&gt;例：select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4 = 10 and t1.c2 =t2.c3 &lt;BR&gt;(3)、三个以上的表进行连接查询采取的规则或者方法 &lt;/P&gt;
&lt;P&gt;（2）、GROUP BY：实现简单分组的功能，当用group by时，查询选择列中除了在group by中出现的和常量外，其他的列上要用分组函数。可以使用一些分组函数实现一些列不在group by中出现，min，max等。 &lt;BR&gt;（3）、HAVING的使用，对一些分组列进行条件判断。 &lt;BR&gt;（4）、ORDER BY子句使得SQL在显示查询结果时将各返回行按顺序排列，返回行的排列顺序由ORDER BY 子句指定的表达式的值确定。 &lt;/P&gt;
&lt;P&gt;2、DELETE：从表中删除记录 &lt;BR&gt;语法格式： &lt;BR&gt;DELETE FROM tablename WHERE (conditions) &lt;/P&gt;
&lt;P&gt;3、INSERT：向表中插入记录 &lt;BR&gt;语法格式： &lt;BR&gt;INSERT INTO tablename (col1,col2,&amp;#8230;) VALUES (value1,value2,&amp;#8230;); &lt;BR&gt;INSERT INTO tablename (col1,col2,&amp;#8230;) VALUES (value1, value2,&amp;#8230;), (value1, value2,&amp;#8230;),&amp;#8230;&amp;#8230; &lt;BR&gt;Insert不会等待任何程序，不会导致锁定。 &lt;/P&gt;
&lt;P&gt;4、UPDATE： &lt;BR&gt;语法格式： &lt;BR&gt;UPDATE tabname SET (col1=values1,col2=values2,&amp;#8230;) WHERE (conditions); &lt;BR&gt;注：update的速度比较慢，要在相应列上建立索引。 &lt;/P&gt;
&lt;P&gt;●数据控制语言 &lt;/P&gt;
&lt;P&gt;GRANT&amp;#8212;授予用户权限 &lt;BR&gt;REVOKE&amp;#8212;撤消用户权限 &lt;BR&gt;COMMIT&amp;#8212;提交事务，可以使数据库的修改永久化 &lt;BR&gt;ROLLBACK&amp;#8212;回滚事务，消除上一个COMMIT命令后的所做的全部修改，使得数据库的内容恢复到上一个COMMIT执行后的状态.。 &lt;/P&gt;
&lt;P&gt;1、GRANT：所有着或者管理员把访问权限赋给其他用户 &lt;BR&gt;语法格式： &lt;BR&gt;grant [all privileges|privileges,&amp;#8230;.] on tabname | viewname to [public|user,&amp;#8230;.] &lt;BR&gt;2、REVOKE:取消某一用户的某中访问权限 &lt;BR&gt;语法格式： &lt;BR&gt;Revoke [all privileges|privileges,&amp;#8230;.] on tabname | viewname from [public|user,&amp;#8230;.] &lt;BR&gt;注：不能取消实例级别的用户的任何权限，他们不是通过grant授权的，是通过组实现的权限。 &lt;BR&gt;3、COMMIT:把事务中所做的修改永久化记录到数据库。 &lt;BR&gt;语法格式： &lt;BR&gt;commit [work] &lt;BR&gt;4、ROLLBACK:将上次提交以来所做的更改全部撤消。 &lt;BR&gt;语法格式： &lt;BR&gt;Rollback [work] &lt;/P&gt;
&lt;P&gt;●高级SQL简单介绍：&lt;/P&gt;
&lt;P&gt;一、查询间使用运算词 &lt;BR&gt;A： UNION 运算符 &lt;BR&gt;UNION 运算符通过组合其他两个结果表（例如 TABLE1 和 TABLE2）并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时（即 UNION ALL），不消除重复行。两种情况下，派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 &lt;/P&gt;
&lt;P&gt;B： EXCEPT 运算符 &lt;BR&gt;EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL)，不消除重复行。 &lt;/P&gt;
&lt;P&gt;C： INTERSECT 运算符 &lt;BR&gt;INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL)，不消除重复行。 &lt;BR&gt;注：使用运算词的几个查询结果行必须是一致的。 &lt;/P&gt;
&lt;P&gt;二、外连接 &lt;BR&gt;A、left outer join： &lt;BR&gt;左外连接（左连接）：结果集几包括连接表的匹配行，也包括左连接表的所有行。 &lt;BR&gt;B：right outer join: &lt;BR&gt;右外连接(右连接)：结果集既包括连接表的匹配连接行，也包括右连接表的所有行。 &lt;BR&gt;C：full outer join： &lt;BR&gt;全外连接：不仅包括符号连接表的匹配行，还包括两个连接表中的所有记录。 &lt;/P&gt;
&lt;P&gt;注：复合外连接按照从左到右的顺序执行连接，左边连接的结果集和右边连接 &lt;BR&gt;三、超级分组和移动函数 &lt;BR&gt;A：grouping sets：用来在单个sql中形成多级分组。 &lt;BR&gt;例：select company_id,node_id,count(customer_id) from customer group by grouping sets(company_id,node_id) &lt;BR&gt;B：rollup：可以在单个数据库操作中形成多个分组。 &lt;BR&gt;例：select company_id,node_id,count(customer_id) from customer group by rollup(company_id,node_id) &lt;BR&gt;注：rollup操作不是可交换的操作，指定用户组的顺序是很重要的。 &lt;BR&gt;C：cube： 生成分组表中分组的所有组合。 &lt;BR&gt;例：select company_id,node_id,count(customer_id) from customer group by cube(company_id,node_id) &lt;BR&gt;D：over：移动函数可以帮助实现移动的数据分析 &lt;BR&gt;Select date,avg(qty) over(order by date rows between 1 preceding and 1 following) as values from sale &lt;/P&gt;
&lt;P&gt;附录：常用函数介绍 &lt;BR&gt;1、类型转化函数： &lt;BR&gt;转化为数字类型的： &lt;BR&gt;decimal, double, Integer, smallint,real &lt;BR&gt;Hex(arg):转化为参数的16进制表示。 &lt;BR&gt;转化为字符串类型的： &lt;BR&gt;char, varchar &lt;BR&gt;Digits(arg):返回arg的字符串表示法，arg必须为decimal。 &lt;BR&gt;转化为日期时间的： &lt;BR&gt;date, time,timestamp &lt;BR&gt;2、时间日期： &lt;BR&gt;year, quarter, month, week, day, hour, minute ,second &lt;BR&gt;dayofyear(arg):返回arg在年内的天值 &lt;BR&gt;Dayofweek(arg):返回arg在周内的天值 &lt;BR&gt;days(arg):返回日期的整数表示法，从0001-01-01来的天数。 &lt;BR&gt;midnight_seconds(arg):午夜和arg之间的秒数。 &lt;BR&gt;Monthname(arg):返回arg的月份名。 &lt;BR&gt;Dayname(arg):返回arg的星期。 &lt;BR&gt;3、字符串函数： &lt;BR&gt;length,lcase, ucase, ltrim, rtrim &lt;BR&gt;Coalesce(arg1,arg2&amp;#8230;.):返回参数集中第一个非null参数。 &lt;BR&gt;Concat (arg1,arg2):连接两个字符串arg1和arg2。 &lt;BR&gt;insert(arg1,pos,size,arg2):返回一个，将arg1从pos处删除size个字符，将arg2插入该位置。 &lt;BR&gt;left(arg,length):返回arg最左边的length个字符串。 &lt;BR&gt;locate(arg1,arg2,&amp;lt;pos&amp;gt;):在arg2中查找arg1第一次出现的位置，指定pos，则从arg2的pos处开始找arg1第一次出现的位置。 &lt;BR&gt;posstr(arg1,arg2):返回arg2第一次在arg1中出现的位置。 &lt;BR&gt;repeat(arg1 ,num_times):返回arg1被重复num_times次的字符串。 &lt;BR&gt;replace(arg1,arg2,arg3):将在arg1中的所有arg2替换成arg3。 &lt;BR&gt;right(arg,length):返回一个有arg左边length个字节组成的字符串。 &lt;BR&gt;space(arg):返回一个包含arg个空格的字符串。 &lt;BR&gt;substr(arg1,pos,&amp;lt;length&amp;gt;):返回arg1中pos位置开始的length个字符，如果没指定length，则返回剩余的字符。 &lt;BR&gt;4、数学函数： &lt;BR&gt;Abs, count, max, min, sum &lt;BR&gt;Ceil(arg):返回大于或等于arg的最小整数。 &lt;BR&gt;Floor(arg):返回小于或等于参数的最小整数。 &lt;BR&gt;Mod(arg1,arg2):返回arg1除以arg2的余数，符号与arg1相同。 &lt;BR&gt;Rand():返回1到1之间的随机数。 &lt;BR&gt;Power(arg1,arg2):返回arg1的arg2次方。 &lt;BR&gt;Round(arg1,arg2):四舍五入截断处理，arg2是位数，如果arg2为负，则对小数点前的数做四舍五入处理。 &lt;BR&gt;Sigh(arg):返回arg的符号指示符。-1,0,1表示。 &lt;BR&gt;truncate(arg1,arg2):截断arg1，arg2是位数，如果arg2是负数，则保留arg1小数点前的arg2位。 &lt;/P&gt;
&lt;P&gt;5、其他： &lt;BR&gt;nullif(arg1,arg2)：如果2个参数相等，则返回null，否则，返回参数1&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/22043.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>由于需要，今天我再次捡起MFC</title><link>http://blog.vckbase.com/saltyegg/archive/2006/08/12/21847.html</link><pubDate>Sat, 12 Aug 2006 13:50:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/08/12/21847.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/21847.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/08/12/21847.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/21847.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/21847.html</trackback:ping><description>&lt;P&gt;MFC，久违了~&lt;/P&gt;
&lt;P&gt;写了很长时间的API+DirectX，MFC几乎已经进入我大脑的备份数据库了。其实要写Win32应用程序，MFC绝对是首选&amp;#8212;&amp;#8212;用它写程序的效率是单纯使用Win API所远不能比的。&lt;/P&gt;
&lt;P&gt;这段时间在Linux下折腾得不少，虽然没什么大的收获，但是也了解到Linux的不少亮点。也许有一天我会去试着开发Linux下面的应用程序。不知道Linux下有没有像VC++那么人性化的东西呢？目前我没有发现，有可能是我对Linux的了解太少了。&lt;/P&gt;
&lt;P&gt;以前我很支持周星星，用他推荐的VC6SP6+VA+Intel C++ Compiler 8.0，可是时间一长，VC6的问题暴露得越来越多，我想是时候把它淘汰掉了。现在我用的是VS2005，觉得各方面都很不错，虽然占用的系统资源多了不少，但是一分资源一分优势，确实是这样。&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/21847.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>今天发现一本书，DirectX的部分写得很敬业</title><link>http://blog.vckbase.com/saltyegg/archive/2006/07/25/21495.html</link><pubDate>Tue, 25 Jul 2006 09:05:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/07/25/21495.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/21495.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/07/25/21495.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/21495.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/21495.html</trackback:ping><description>&lt;P&gt;今天发现一本书，DirectX的部分写得很敬业，其他部分只是简单看了看，觉得很不错。&lt;/P&gt;
&lt;P&gt;《Windows API for 2000/XP实例精解》&lt;/P&gt;
&lt;P&gt;这里有电子版的，不过不知道是不是长期有效：&lt;/P&gt;
&lt;P&gt;&lt;A href="http://act.it.sohu.com/book/serialize.php?id=62"&gt;http://act.it.sohu.com/book/serialize.php?id=62&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/21495.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>颓废了几天，今天开始写DInput</title><link>http://blog.vckbase.com/saltyegg/archive/2006/07/19/21363.html</link><pubDate>Wed, 19 Jul 2006 10:08:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/07/19/21363.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/21363.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/07/19/21363.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/21363.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/21363.html</trackback:ping><description>&lt;P&gt;在Debian下弄了两三天，没觉得学到什么东西~~&lt;/P&gt;
&lt;P&gt;还是回归正道吧，DInput~~&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/21363.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>完成了DirectDraw7简单封装</title><link>http://blog.vckbase.com/saltyegg/archive/2006/07/14/21255.html</link><pubDate>Fri, 14 Jul 2006 09:08:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/07/14/21255.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/21255.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/07/14/21255.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/21255.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/21255.html</trackback:ping><description>&lt;P&gt;　　今天终于把DirectDraw7的模块写完了，其实功能并不是很多，主要是DirectDraw7的初始化、从文件中读取图像并加载到离屏表面、提供窗口模式和全屏模式的flip操作，并封装了我原来用MMX写的32位图像的Alpha混合、模糊、颜色叠加等方法。但比起原来写的DDraw程序，最大的进步就是这次我重视了错误的捕获和报告，使得这个模块尽可能地健壮。&lt;/P&gt;
&lt;P&gt;　　由于使用了IPicture接口，加载jpg、gif等格式的文件统统不是问题，用起来相当爽。刚才测试了一下，1024*768*32的全屏Alpha混合能到四十多的fps，我个人感觉相当不错了。将来可能还会加上一个读取已经加载到内存中的图像文件的功能。&lt;/P&gt;
&lt;P&gt;　　接下来我想写一个能处理声音的模块，要求能够播放一首背景音乐，同时能加上音效，能控制音量，支持尽可能多的文件格式。我个人觉得用DSound的话有点大材小用，程序也不大好写，但是Windows下面的API好像功能有点不足，不知道如何是好，希望大家给一点建议。&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/21255.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一个咸蛋的唠叨</dc:creator><title>一个很恶心的错误</title><link>http://blog.vckbase.com/saltyegg/archive/2006/07/14/21235.html</link><pubDate>Thu, 13 Jul 2006 16:43:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/07/14/21235.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/21235.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/07/14/21235.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/21235.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/21235.html</trackback:ping><description>&lt;P&gt;　　今天我想用IPicture实现不同图形文件的读取操作，结果OleLoadPicture函数老是出错，上网查资料也没什么结果，我都开始以为我的VC出问题了，最后上网down了一个例程居然能用，然后把人家的代码拷贝过来加以改动，我的程序也能运行了，搞得我很郁闷。&lt;/P&gt;
&lt;P&gt;　　其实两个程序差别就在文件读取的那一块，我用的是STL的fstream，他用的是CreateFile，经过反复调试才发现是因为我在打开文件的时候没有加上ios::binary，结果read函数得不到正确的结果~~&lt;/P&gt;
&lt;P&gt;　　大家引以为戒啊，这玩意儿耗了我好几个小时。&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/21235.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一只咸蛋的唠叨</dc:creator><title>现在才知道大学的日子也不好过啊</title><link>http://blog.vckbase.com/saltyegg/archive/2006/01/11/17014.html</link><pubDate>Wed, 11 Jan 2006 11:58:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2006/01/11/17014.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/17014.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2006/01/11/17014.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/17014.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/17014.html</trackback:ping><description>&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;好久没上这个Blog了，也不是因为忙，就是懒~~不知道为什么，来到大学觉得变得很懒了。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;感觉现在和高中也没多大区别，整天上课看书做作业，也许是我不懂得怎样在大学里面生活吧，虽然一切都很好，但是感到有些空虚。我那些同学时常会跑出去玩，就我一直闷在学校里，几乎没有出去，还是因为懒~~&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;大一上学期不许买电脑，要上网还得骑十分钟的车奔到机房，而且还不能玩游戏~~郁闷啊。&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;现在终于考完试可以回家了，不过总觉得这个学期没什么收获，不知道大家的大学四年都能干些什么？&lt;/FONT&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/17014.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>一只咸蛋的唠叨</dc:creator><title>从高考到通知书</title><link>http://blog.vckbase.com/saltyegg/archive/2005/07/19/9802.html</link><pubDate>Tue, 19 Jul 2005 11:29:00 GMT</pubDate><guid>http://blog.vckbase.com/saltyegg/archive/2005/07/19/9802.html</guid><wfw:comment>http://blog.vckbase.com/saltyegg/comments/9802.html</wfw:comment><comments>http://blog.vckbase.com/saltyegg/archive/2005/07/19/9802.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blog.vckbase.com/saltyegg/comments/commentRss/9802.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/saltyegg/services/trackbacks/9802.html</trackback:ping><description>&lt;P&gt;&amp;nbsp; 真的是光阴似箭啊，眼看着才高考，今天却连通知书都收到了。回想这段日子，担忧过，紧张过，快乐过，而就在这些担忧、紧张、快乐中，日子一天天过去&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 原想着趁着放大假好好编程，却不料一天被游戏拴住，手都丢不开；真是觉得有点虚度光阴。不过手里拿着期待已久通知书，什么烦恼都先滚远远的，先好好庆祝一下的说。&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 清华进校要进行外语分级考试，对于我这个地处贵州的学子来说，无疑是一大挑战；因为我的师兄师姐们都没能在这考试中取得理想的成绩，跟何况我这个英语一直不太好的小师弟呢。前些天在网上订购了一本北大出版的英语四级冲刺训练，书昨天已经到了，希望它能带给我好运。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;再说说编程吧，除了昨天写个程序帮别人做个题目以外，好久都没用VC了。只是常常会不由自主地双击VC的快捷方式，然后盯着那熟悉的界面发发呆，最后又由于无从下手而按下窗口右上角的那个按钮&amp;#8230;&amp;#8230;不过还好，通过看书，DirectMusic的基本操作已经掌握，估计程序设计也就是这两天的事了。&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/saltyegg/aggbug/9802.html" width = "1" height = "1" /&gt;</description></item></channel></rss>