大坡3D软件开发

因我而不同--用软件来改变世界

reactos操作系统实现(198)

为了测试2位颜色位图装载到设备是否出错,编写了下面这段测试代码,如下:#001  /* test with 2 bits color depth, not likelyto succeed */#002      hbmp = CreateBitmap(16, 16, 1, 2, bits);#0...

2010-02-23 20:04:00

阅读数:2453

评论数:3

reactos操作系统实现(197)

所有API都需要通过兼容性测试,才说明这个API没有问题,达到可以使用的程度。下面这段代码就是测试API的兼容性,当测试到GetPixel函数时,就发现有一个BUG,就是最后一行,当希望这个单色的图片返回0xFFFFFF值,但在ROS返回是0值。说明这个API函数在单色处理上存在问题,那么怎么样修...

2010-02-10 23:54:00

阅读数:2088

评论数:0

reactos操作系统实现(196)

PALETTE_Init函数是用来创建系统调色板。具体实现如下:#001  HPALETTE FASTCALL PALETTE_Init(VOID)#002  {#003      int i;#004      HPALETTE hpalette;#005      PLOGPALETTE pa...

2010-02-09 23:09:00

阅读数:1667

评论数:0

reactos操作系统实现(195)

系统调色板相关功能的代码在文件subsys/win32k/eng/palette.c里。什么是调色板呢?其实调色板就是当一种图像不是使用到所有颜色时,使用的一种索引技术,以便减少图像保存的大小。一幅图像,如果要按真彩色表达,那么就是256×256×256颜色;如果按256色表示,那就只使用到256...

2010-02-08 21:39:00

阅读数:1642

评论数:1

reactos操作系统实现(194)

GetPixel函数是从指定DC里获取指定位置的颜色值。#001  COLORREF#002  WINAPI#003  GetPixel( HDC hDC, INT x, INT y )#004  { 如果句柄不是DC,就返回非法的。#005   if (GDI_HANDLE_GET_TYPE(h...

2010-02-07 10:35:00

阅读数:1792

评论数:0

reactos操作系统实现(193)

SelectObject函数是将对象选定到指定的设备场境中。具体实现代码如下:#001  HGDIOBJ#002  WINAPI#003  SelectObject(HDC hDC,#004               HGDIOBJ hGdiObj)#005  {#006      PDC_AT...

2010-02-06 20:52:00

阅读数:1951

评论数:0

reactos操作系统实现(191)

CreateBitmap函数是创建具有给定宽度、高度和颜色格式的、以颜色位值构成的数组为基础的位图。#001  HBITMAP WINAPI#002  CreateBitmap(INT  Width,#003               INT  Height,#004              ...

2010-02-04 21:23:00

阅读数:1664

评论数:0

reactos操作系统实现(190)

GetDC函数是通过窗口的句柄获取设备环境,这样就可以把获取到的设备环境使用到后面的GDI函数里,这样就可以在窗口的客户区中绘图了。当应用程序结束时,需要使用ReleaseDC来释放设备环境。如果是私有设备时,就可以不删除它。这个API实现函数如下:#001  EXTINLINE HDC WINA...

2010-02-02 22:43:00

阅读数:2163

评论数:0

reactos操作系统实现(189)

DC(device context)是一个图形对象、图形属性和影响图形输出的集合结构体。CreateDC函数用给定名称为指定的设备创建设备环境。CreateDC一般用于创建打印机的设备环境,也可以用来得到屏幕(硬件屏幕,而不是窗口的客户区)的设备环境。请小心使用这个函数,因为它允许应用程序在屏幕上...

2010-01-31 17:36:00

阅读数:2126

评论数:0

reactos操作系统实现(188)

开发操作系统是一个比较复杂的程序开发,调试和测试是一个极其大的任务,工作量很大,那么有什么方法来简化测试呢?尽量把问题找出来呢?在Reactos里是编写了很多API测试程序,也就是针对某一方面的API进行全面的测试。由于Reactos里是共享了很多WINE的API代码,所以它的API测试程序就叫做...

2010-01-30 23:46:00

阅读数:2277

评论数:2

reactos操作系统实现(187)

随着全球化的发展,开发软件都是面向多语言的环境。目前大多数程序都是采用不同字体来显示不同语言的办法,那么有没有一种更好的办法,一种字体就可以解决全球语言的显示呢?答案肯定的,它就是采用逻辑字体MSShell Dlg和MSShell Dlg2。比如开发应用程序时,就看到在资源里可以设置MSShell...

2010-01-27 21:46:00

阅读数:2961

评论数:7

reactos操作系统实现(186)

 要调试内核代码是一件不容易的事情,一般是需要双机调试的方法,一台电脑作为目标机器来运行编译出来的操作系统,另一台电脑作为跟踪调试的机器,用来查看操作系统输出的调试信息、以及输入命令给操作系统。现在就来介绍基于虚拟机的方式来调试内核代码,最简单的方式就是使用串口通讯的方式,并且串口设置为零调制方式...

2010-01-24 14:44:00

阅读数:1919

评论数:0

reactos操作系统实现(185)

在ReactOS系统里,当安装完成后,如果网络已经可能使用,就可以立即打开应用程序管理器,直接从网络上下载相应的应用程序,这样是很方便安装和管理软件,这些都是跟Linux操作系统学习过来的。具体的界面如下:  这是ReactOS 0.3.11版本的界面,从上面看到可以下载很多非常有用的应用程序,包...

2010-01-23 22:20:00

阅读数:1971

评论数:1

reactos操作系统实现(184)

GreExtTextOutW函数实现一串字符串输出到指定区域,当然是从字符串变成图片输出。这些都调用FreeType库来实现的,具体实现代码如下:#001  BOOL#002  APIENTRY#003  GreExtTextOutW(#004      INHDC hDC,#005      I...

2010-01-21 21:26:00

阅读数:2257

评论数:0

reactos操作系统实现(183)

UserDrawCaptionText函数实现窗口上标题的显示。实现的代码如下:#001  BOOL#002  UserDrawCaptionText(HDC hDc,#003     const PUNICODE_STRING Text,#004     const LPRECT lpRc,#0...

2010-01-20 23:44:00

阅读数:1723

评论数:0

reactos操作系统实现(182)

UserDrawCaption函数是用来实现窗口标题显示。具体代码如下:#001  BOOL UserDrawCaption(#002     PWINDOW_OBJECT pWnd,#003     HDC hDc,#004     LPCRECT lpRc,#005     HFONT hFo...

2010-01-18 21:34:00

阅读数:1679

评论数:0

reactos操作系统实现(181)

NtUserDrawCaption是内核函数,主要用来实现显示窗口标题。#001  BOOL#002  APIENTRY#003  NtUserDrawCaption(HWND hWnd,#004     HDC hDC,#005     LPCRECT lpRc,#006     UINT uF...

2010-01-17 21:09:00

阅读数:1640

评论数:0

reactos操作系统实现(180)

DefWndNCPaint函数实现窗口非客户区的显示部分,比如窗口的标题、最大化、最小化、关闭按钮、滚动条等等。#001  LRESULT#002  DefWndNCPaint(HWND hWnd, HRGN hRgn, BOOLActive)#003  {#004     HDC hDC;#00...

2010-01-16 21:12:00

阅读数:1666

评论数:0

reactos操作系统实现(179)

SetWindowText函数是实现设置窗口标题上显示的字符串。这个函数在内核里这样实现,代码如下:#001  BOOL WINAPI#002  SetWindowTextW(HWND hWnd,#003                 LPCWSTR lpString)#004  {#005  ...

2010-01-12 21:29:00

阅读数:1552

评论数:0

reactos操作系统实现(178)

SendMessageW函数主要用来向窗口发送消息。下面就是它的实现代码:#001  LRESULT WINAPI#002  SendMessageW(HWND Wnd,#003            UINT Msg,#004            WPARAM wParam,#005     ...

2010-01-11 23:30:00

阅读数:1846

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭