FISH 的专栏

天生我才必有用

2007年08月28日

置顶 翻译 构建自己的操作系统 1

如果你了解操作系统的工作原理, 这对你的编程会大有裨益,特别是对那些开发设备驱动的系统程序员。即使是非系统程序员也会从中获得很多知识。我相信:每个搞程序开发的人都想有一个自己制作的操作系统。通过阅读本篇文章你也会学到怎样从磁盘驱动器读写原始扇区。阅读全文>

发表于 @ 2007年08月28日 15:09:00|评论(loading...)|举报|收藏

2007年08月13日

置顶 原创 wchar[] 与 char[] 转换

从网上找了 将近一个小时没有找到合适的传换类型代码。自己 10 分钟就写好了,有点没自信了。懒啦!! 现在帖出来和大家分享吧, 节省大家的时间。 W2C(WCHAR *pwstr, CHAR * cstr) C2W( CHAR * cstr, WCHAR *wstr)阅读全文>

发表于 @ 2007年08月13日 17:39:00|评论(loading...)|举报|收藏

2009年06月15日

原创 投影变换--透视投影和正交投影

.2.3 投影变换3.2.3.1 基本概念 在计算机图形软件中所采用笛卡尔(cartesian)直角三维坐标系统,按照z轴方向的不同有两种形式: 1右手系统:当用右手握住z轴时,大姆指指向z轴的正方向(图3.20(a)),其余四个手指从x轴到y轴形成一个弧。 2左手系统:当用左手握住z轴时,大姆指指向z轴的正方向(图3.20(b)));其余四个手指从x轴到y轴形成一个弧。阅读全文>

发表于 @ 2009年06月15日 16:06:00|评论(loading...)|举报|收藏

2009年05月15日

原创 VS2008 转 VS2005


用记事本打开.sln文件,你将看到:
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
你把它改成:
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
将.vcproj中的转化成Version="9.00" 改成8.00

如果不行就在
IDR_MAINFRAME中有个大图标删除
//#include      将这个注释
这个在应用程序框架中
#define CWinAppEx CWinApp
把CWINAPPEX前面加上阅读全文>

发表于 @ 2009年05月15日 16:17:00|评论(loading...)|举报|收藏

2009年04月28日

原创 空间焦点事件通知


失去焦点通知代码:
Edit
#defineON_EN_SETFOCUS(id, memberFxn) \
    ON_CONTROL(EN_SETFOCUS, id, memberFxn)
#defineON_EN_KILLFOCUS(id, memberFxn) \
    ON_CONTROL(EN_KILLFOCUS, id, memberFxn)

Button
#defineON_BN_SETFOCUS(id, memberFxn) \
    ON_CONTROL(BN_SETFOCUS, id, memberFxn)
#defineON_BN_KILLFOCUS(id, memberFxn) \
    ON_CONTROL(BN_KILLFOCUS, id, memberFxn)阅读全文>

发表于 @ 2009年04月28日 14:18:00|评论(loading...)|举报|收藏

2009年04月27日

原创 ViewPort 转换矩阵的证明

ViewPort 转换矩阵是把投影窗口显示的2D图像转换为视口显示(屏幕坐标),即从投影窗口到视口缩放变换。 已知: 通常, 用户坐标中需要显示的图形(矩形区域)称为窗口。(这里是投影窗口) 在设备(屏幕)上,显示(或绘制)图形的区域(矩形区域)称为视口。(这里是屏幕) 投影窗口的大小为x= (-1,1) , y= (-1 ,1), z=(0, 1)阅读全文>

发表于 @ 2009年04月27日 17:56:00|评论(loading...)|举报|收藏

2009年04月14日

转载 武汉公交521

某天晚上从江汉路坐601,由于人多,都人挨人的。本人不幸站在自动投币箱边上,看着司机一脸惬意的在甩方向盘。到某站时,司机的神色一变,方向盘一甩,超过301巴士。在加速的那时候,前方又突现了一只比较名贵品种的狗,于是一个紧急刹车,狗得意的跑开了,我差点没扑在前面的玻璃上,回头一看,一车的人紧紧的贴在一起,脸是绿色的,特别安静,没有人说话……司机在几秒钟之内完成超车、加速、紧急刹车的过程。额的神啊! 知道为什么557取消了???? 当年长江大桥翻修的时候不让过,有个557司机不信邪说:大不了不上桥撒。 油门一踩,一个鲤鱼跃龙门,上到龟山顶才阅读全文>

发表于 @ 2009年04月14日 12:37:00|评论(loading...)|举报|收藏

2009年03月21日

原创 字符串 大小写转换( 数据转换 )

字符串转 大写 char *_strupr( char *str ); wchar_t *_wcsupr( wchar_t *str ); unsigned char *_mbsupr( unsigned char *str ); char *_strupr_l( char *str, _locale_t locale ); wchar_t *_wcsupr_l( wchar_t *str, _locale_t locale ); 字符串转 小写 char *_strlwr( char * str ); wchar_t *_wcslwr( wchar_t * str ); unsigned char *_mbslwr( unsigned char * str ); char *_strlwr_l( char * str, _locale_t locale ); wchar_t *_wcslwr_l( wc阅读全文>

发表于 @ 2009年03月21日 21:52:00|评论(loading...)|举报|收藏

2009年03月14日

原创 DDOS防御,注册表设置大全

DDOS防御,注册表设置大全 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接 第二个网关,通过关闭它可以优化网络。 EnableDeadGWDetect=dword:00000000 阅读全文>

发表于 @ 2009年03月14日 19:26:00|评论(loading...)|举报|收藏

2009年03月08日

转载 VC 无闪烁刷屏 技术


1.显示的图形为什么会闪烁[/B]
  我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使[/B]得显示窗口看起来在闪。如果将背景刷设置成NULL,这样无论怎样重绘图形都不[/B]会闪了。当然,这样做会使[/B]得窗口的显示乱成一团,因为重绘时没有背景色对原来绘制[/B]的图形进行清除,而又叠加上了新的图形。有的人会说,闪烁[/B]是因为绘图的速度太慢或者显示的图形太复杂造成的,其实这样说并不[/B]对,绘图的显示速度对闪烁[/B]的影响不[/B]是根本性的。例如在OnDraw(CDC *pDC)中这样写:
pDC->MoveTo(0,0);
pDC->LineTo(100,100);

  这个绘图过程应该是非常简单、非常快了吧,但是拉动窗口变化时还是会看见闪烁[/B]。其实从道理上讲,画图阅读全文>

发表于 @ 2009年03月08日 11:52:00|评论(loading...)|举报|收藏

2009年03月06日

原创 topdesk 图标隐藏 后无法显示的BUG

topdesk 没有呼出 本身设置窗口的热键, 一旦 设置了隐藏图标, 就再也无法对其进行设置。 花了1个多小时,用windbg终于找到了解决方法。 再这汗自己一下,用的工具不对,用filemon 信息设置过滤后也信息太多,没法辨别有用的信息。 在topdesk启动后 windbg 断在程序开始, 下一个文件或注册表断点 观察到 我的机器 系统在C 盘 : 在下面路径 C:\Documents and Settings\sina\Application Data\OtakuSoftware\TopDesk 有一个配置文件 topdesk.cfg, 更改或删除都可以 阅读全文>

发表于 @ 2009年03月06日 11:08:00|评论(loading...)|举报|收藏

2009年03月05日

原创 断点失效 终极解决办法



(1) 工具-->选项-->要求源文件和原始文件版本完全匹配

(2) 搜索当前 项目文件, 删除 下面文件 .obj; .idb; .ilk; .pdb; .pdb; .idb;.ilk;.obj;.exp;.pch;.map;.ncb;.vcc;.res;.tli   重新编译就好了
阅读全文>

发表于 @ 2009年03月05日 16:00:00|评论(loading...)|举报|收藏

2009年02月03日

原创 简单实现菜单自绘


简单对下面3 个消息处理 就可实现菜单自绘, 其他控件类似;


 //WM_DRAWITEM:绘制菜单的样式
//WM_MEASUREITEM:指定要绘制菜单的大小
//WM_INITMENU:把框架菜单全部改成带MF_OWNERDRAW标志
void CTestRgnDlg::OnInitMenu(CMenu* pMenu)
{
 //CDialog::OnInitMenu(pMenu);
 CMenu *pSubMenu;
 UINT nCount,nSubCount,nID;
 CString strText;
 nCount=pMenu->GetMenuItemCount();

 for(UINT i=0;i
 {
  pSubMenu =pMenu->GetSubMenu(i);
  nSubCount=pSubMenu->GetMenuItemCount();阅读全文>

发表于 @ 2009年02月03日 18:41:00|评论(loading...)|举报|收藏

2009年01月28日

原创 BeginPaint 和 GetDC 的区别


第一种情况显示出来的字很正常。
case WM_PAINT:
        gdc = BeginPaint (hwnd, &ps);
        TextOut (gdc, 0, 0, s, strlen (s));
        EndPaint (hwnd, &ps);
break;

第二种情况显示的字不停闪烁。
case WM_PAINT:
        gdc = GetDC (hwnd);
        TextOut (gdc, 0, 0, s, strlen (s));
        ReleaseDC (hwnd, gdc);
break;

原因:
BeginPaint() 和EndPaint() 可以删除消息队列中的WM_PAINT消息,并使无效区域有效。
GetDC()和ReleaseDC()并不删除也不能使无效区域有效,因此当程序跳出 WM_PAINT 时 ,无效区域仍然存阅读全文>

发表于 @ 2009年01月28日 19:53:00|评论(loading...)|举报|收藏

2009年01月26日

转载 windbg 中常用的命令(1)



~ - list threads in current process context

~* - list detail information of threads in current process context

lm - list all loaded modules

!sym noice/quiet - symbol prompts on/off

.srcpath - set source code path

k - display current stack

~*kb - display current stack for all threads
dv - display current local variable (ctrl + alt + v to switch mode)
.Frame - call stack
dt xxx - display data structure fo阅读全文>

发表于 @ 2009年01月26日 07:23:00|评论(loading...)|举报|收藏

用户操作
[即时聊天] [发私信] [加为好友]
FISH
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
FISH的公告
文章分类
收藏
存档
软件项目交易
Csdn Blog version 3.1a
Copyright © FISH