亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? tut3.html

?? WINDOWS程序員使用指南--匯編基礎(chǔ)
?? HTML
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.7 [en] (Win98; I) [Netscape]">
   <title>Iczelion's Win32 ASM tutorial 3: A Simple Window</title>
</head>
<body text="#C0C0C0" bgcolor="#000000" link="#00FFFF" vlink="#FF34D0" alink="#98FF98">

<center>
<h1>
<font face="Arial"><font color="#999900">Tutorial 3: A Simple Window</font></font></h1></center>
<font size=-1>In this tutorial, we will build a Windows program that displays
a fully functional window on the desktop.</font>
<br><font size=-1>Download the example file <a href="files/tut03.zip">here</a></font>
<h3>
<font color="#FF9800"><font size=+0>Theory:</font></font></h3>
<font size=-1>Windows programs rely heavily on API functions for their
GUI. This approach benefits both users and programmers. For users, they
don't have to learn how to navigate the GUI of each new programs, the GUI
of Windows programs are alike. For programmers, the GUI codes are already
there,tested, and ready for use. The downside for programmers is the increased
complexity involved. In order to create or manipulate any GUI objects such
as windows, menu or icons, programmers must follow a strict recipe. But
that can be overcome by modular programming or OOP paradigm.</font>
<br><font size=-1>I'll outline the steps required to create a window on
the desktop below:</font>
<ol>
<li>
<font size=-1>Get the instance handle of your program (required)</font></li>

<li>
<font size=-1>Get the command line (not required unless your program wants
to process a command line)</font></li>

<li>
<font size=-1>Register window class (required ,unless you use predefined
window types, eg. MessageBox or a dialog box)</font></li>

<li>
<font size=-1>Create the window (required)</font></li>

<li>
<font size=-1>Show the window on the desktop (required unless you don't
want to show the window immediately)</font></li>

<li>
<font size=-1>Refresh the client area of the window</font></li>

<li>
<font size=-1>Enter an infinite loop, checking for messages from Windows</font></li>

<li>
<font size=-1>If messages arrive, they are processed by a specialized function
that is responsible for the window</font></li>

<li>
<font size=-1>Quit program if the user closes the window</font></li>
</ol>
<font size=-1>As you can see, the structure of a Windows program is rather
complex compared to a DOS program. But the world of Windows is drastically
different from the world of DOS. Windows programs must be able to coexist
peacefully with each other. They must follow stricter rules. You, as a
programmer, must also be more strict with your programming style and habit.</font>
<h3>
<font color="#CC0000"><font size=+0>Content:</font></font></h3>
<font size=-1>Below is the source code of our simple window program. Before
jumping into the gory details of Win32 ASM programming, I'll point out
some fine points which will ease your programming.</font>
<ul>
<li>
<font size=-1>You should put all Windows constants, structures and function
prototypes in an include file and include it at the beginning of your .asm
file. It'll save you a lot of effort and typo. Currently, the most complete
include file for MASM is hutch's windows.inc which you can download from
his page or my page. You can also define your own constants &amp; structure
definitions but you should put them into a separate include file.</font></li>

<li>
<font size=-1>Use<font color="#FFFF68"> includelib</font> directive to
specify the import library used in your program. For example, if your program
calls MessageBox, you should put the line:</font></li>

<ul><font color="#FF9800"><font size=-1>includelib user32.lib</font></font></ul>
<font size=-1>at the beginning of your .asm file. This directive tells
MASM that your program will make uses of functions in that import library.
If your program calls functions in more than one library, just add an includelib
for
each library you use. Using IncludeLib directive, you don't have to worry
about import libraries at link time. You can use /LIBPATH linker switch
to tell Link where all the libs are.</font>
<li>
<font size=-1>When declaring API function prototypes, structures, or constants
in your include file, try to stick to the original names used in Windows
include files, including case. This will save you a lot of headache when
looking up some item in Win32 API reference.</font></li>

<li>
<font size=-1>Use makefile to automate your assembling process. This will
save you a lot of typing.</font></li>
</ul>
<b><font size=-1>.386</font></b>
<br><b><font size=-1>.model flat,stdcall</font></b>
<br><b><font size=-1>option casemap:none</font></b>
<br><b><font size=-1>include \masm32\include\windows.inc</font></b>
<br><b><font size=-1>include \masm32\include\user32.inc</font></b>
<br><b><font size=-1>includelib \masm32\lib\user32.lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<font color="#009900">; calls to functions in user32.lib and kernel32.lib</font></font></b>
<br><b><font size=-1>include \masm32\include\kernel32.inc</font></b>
<br><b><font size=-1>includelib \masm32\lib\kernel32.lib</font></b>
<p><b><font size=-1>WinMain proto :DWORD,:DWORD,:DWORD,:DWORD</font></b>
<p><b><font size=-1>.DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#009900">&nbsp;&nbsp;
; initialized data</font></font></b>
<br><b><font size=-1>ClassName db "SimpleWinClass",0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#009900">&nbsp;
; the name of our window class</font></font></b>
<br><b><font size=-1>AppName db "Our First Window",0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#009900">
; the name of our window</font></font></b>
<p><b><font size=-1>.DATA?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#009900">&nbsp;
; Uninitialized data</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">hInstance HINSTANCE ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font color="#009900">; Instance handle of our program</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>CommandLine LPSTR ?</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">.CODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">&nbsp;&nbsp;&nbsp;
; Here begins our code</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>start:</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">invoke GetModuleHandle, NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">&nbsp;&nbsp;
; get the instance handle of our program.</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font color="#009900">; Under Win32, hmodule==hinstance mov hInstance,eax</font></font></b>
<br><b><font color="#FFFFFF"><font size=-1>mov hInstance,eax</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">invoke GetCommandLine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">&nbsp;&nbsp;
; get the command line. You don't have to call this function IF</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font color="#009900">; your program doesn't process the command
line.</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>mov CommandLine,eax</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">invoke WinMain, hInstance,NULL,CommandLine,
SW_SHOWDEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">&nbsp;
; call the main function</font></font></b>
<br>
  <b><font size=-1><font color="#CCCCCC">invoke ExitProcess, eax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">&nbsp;&nbsp;&nbsp; 
  ; quit our program. The exit code is returned in eax from WinMain.</font></font></b> 
<p><b><font color="#CCCCCC"><font size=-1>WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">&nbsp;&nbsp;&nbsp; LOCAL wc:WNDCLASSEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">
; create local variables on stack</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; LOCAL msg:MSG</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; LOCAL hwnd:HWND</font></font></b>
<p><b><font size=-1><font color="#CCCCCC">&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.cbSize,SIZEOF WNDCLASSEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">
; fill values in members of wc</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.style, CS_HREDRAW or CS_VREDRAW</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.lpfnWndProc, OFFSET WndProc</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.cbClsExtra,NULL</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.cbWndExtra,NULL</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; push&nbsp;
hInstance</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; pop&nbsp;&nbsp;
wc.hInstance</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.hbrBackground,COLOR_WINDOW+1</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.lpszMenuName,NULL</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.lpszClassName,OFFSET ClassName</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; invoke LoadIcon,NULL,IDI_APPLICATION</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.hIcon,eax</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.hIconSm,eax</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; invoke LoadCursor,NULL,IDC_ARROW</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;
wc.hCursor,eax</font></font></b>
<br><b><font size=-1><font color="#CCCCCC">&nbsp;&nbsp;&nbsp; invoke RegisterClassEx,
addr wc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#009900">
; register our window class</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; invoke CreateWindowEx,NULL,\</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ADDR ClassName,\</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ADDR AppName,\</font></font></b>
<br><b><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产普通话蜜臀| 成人app在线观看| 欧美第一区第二区| 精品一区二区在线视频| 精品国产123| 国产成人免费在线观看不卡| 精品久久久三级丝袜| 国产成人精品亚洲日本在线桃色 | 风间由美性色一区二区三区| 欧美精品一区男女天堂| 成人免费av在线| 亚洲免费资源在线播放| 69堂成人精品免费视频| 国产美女一区二区| 亚洲免费在线看| 精品国产电影一区二区| eeuss鲁一区二区三区| 亚洲激情成人在线| 欧美精品免费视频| 成人免费看的视频| 麻豆一区二区三区| 亚洲激情成人在线| 中文字幕精品综合| 精品剧情v国产在线观看在线| 国产91丝袜在线播放| 亚洲成人免费观看| 亚洲国产精品精华液2区45| 7777精品伊人久久久大香线蕉的| 成人午夜私人影院| 麻豆精品视频在线观看视频| 中文字幕不卡的av| 久久综合视频网| 欧美一级理论片| 欧美影院午夜播放| 91理论电影在线观看| 丁香六月久久综合狠狠色| 日本sm残虐另类| 香蕉乱码成人久久天堂爱免费| 国产亚洲精品7777| 国产欧美日韩综合| 国产欧美精品日韩区二区麻豆天美| 欧美一区二区在线免费播放| 日本高清成人免费播放| 91蜜桃传媒精品久久久一区二区| 国产高清久久久久| 国产+成+人+亚洲欧洲自线| 国产成人精品影院| av中文一区二区三区| 波多野结衣的一区二区三区| 成人精品国产免费网站| 成人高清在线视频| 91在线一区二区三区| 色88888久久久久久影院野外 | 懂色av中文一区二区三区| 国产中文一区二区三区| 国产suv精品一区二区883| hitomi一区二区三区精品| 99精品欧美一区二区蜜桃免费| 欧洲亚洲国产日韩| 欧美一区二区三区免费观看视频| 日韩欧美的一区| 精品奇米国产一区二区三区| 久久综合久久综合久久综合| 亚洲国产成人午夜在线一区 | 91在线视频网址| 欧美激情一区二区三区四区| 国产视频亚洲色图| 久久精品国产精品亚洲综合| 欧美日韩精品一区二区天天拍小说 | 日本美女一区二区| 日韩高清一区在线| 国产资源在线一区| 色综合久久久久久久久久久| 在线欧美小视频| 久久蜜桃av一区精品变态类天堂| 中文字幕第一区二区| 日韩一区精品视频| 成+人+亚洲+综合天堂| 国产精品久线在线观看| 午夜精品福利一区二区三区av| www.亚洲人| 国产午夜亚洲精品不卡| 国产伦理精品不卡| 日韩精品一区二区三区在线观看| 亚洲欧美自拍偷拍| 国产91对白在线观看九色| 精品粉嫩aⅴ一区二区三区四区| 亚洲电影一区二区三区| 色噜噜夜夜夜综合网| 亚洲视频一区二区免费在线观看| 国产成人综合亚洲91猫咪| 日韩精品一区在线观看| 美女视频网站黄色亚洲| 日韩午夜电影在线观看| 日韩av网站在线观看| 日韩一区和二区| 麻豆91精品91久久久的内涵| 91精品国产欧美一区二区成人| 日日夜夜精品视频天天综合网| 欧美老女人第四色| 久久99精品一区二区三区 | 国产精品99久久久久久似苏梦涵| www.亚洲在线| 国产精品影视在线观看| 午夜精品久久久久| 亚洲一二三四久久| 国产精品嫩草影院com| 日韩区在线观看| 不卡的av在线| 久久99国产精品免费| 亚洲欧美色图小说| 欧美一级黄色录像| 国产91精品精华液一区二区三区| 1024成人网| 日韩欧美二区三区| 99国产精品久久| 久久超级碰视频| 一级女性全黄久久生活片免费| 日韩精品最新网址| 99久久精品情趣| 六月丁香婷婷色狠狠久久| 国产欧美久久久精品影院| 欧美视频一区在线| 国产麻豆精品theporn| 日本特黄久久久高潮| 国产网站一区二区三区| 日韩欧美亚洲国产精品字幕久久久 | 国产精品卡一卡二卡三| 久久综合九色综合欧美98 | 欧美二区三区91| 不卡的看片网站| 国产在线播放一区三区四| 亚洲第一激情av| 亚洲另类春色校园小说| 国产欧美一区二区精品性色| 日韩一区二区在线观看视频| 91污在线观看| 91网站在线播放| 一本大道av伊人久久综合| 成人午夜视频网站| 国产成都精品91一区二区三| 久久99久久久欧美国产| 日韩激情视频网站| 日韩av电影天堂| 久久疯狂做爰流白浆xx| 久热成人在线视频| 久久国产婷婷国产香蕉| 久久99精品国产.久久久久久 | 国产一区二区三区日韩| 国产激情精品久久久第一区二区| 国产精品亚洲第一区在线暖暖韩国 | 成人黄页毛片网站| 欧美精品亚洲二区| 国产欧美一区二区精品婷婷| 午夜精品免费在线| 99热这里都是精品| 久久日韩精品一区二区五区| 亚洲综合久久久| 美女被吸乳得到大胸91| 久久99久久精品欧美| www.日韩在线| 欧美精品电影在线播放| 国产视频亚洲色图| 性欧美疯狂xxxxbbbb| 国产成人亚洲综合a∨猫咪| 91色porny在线视频| 日韩免费观看2025年上映的电影| 久久久久久久综合| 亚洲国产精品久久人人爱蜜臀| 九一久久久久久| 欧美日韩国产综合一区二区三区 | 中文字幕欧美激情一区| 亚洲永久免费av| 成人午夜av电影| 26uuu亚洲综合色欧美| 亚洲久本草在线中文字幕| 国产在线乱码一区二区三区| 色婷婷久久久综合中文字幕| 日韩欧美电影一区| 亚洲成人免费在线| 色婷婷亚洲一区二区三区| 国产三级精品在线| 久久国产生活片100| 欧美丰满嫩嫩电影| 一区二区日韩电影| 91美女视频网站| 成人欧美一区二区三区1314| 国产福利一区二区三区在线视频| 欧美一区二区精品久久911| 亚洲风情在线资源站| 99久久精品国产导航| 国产精品日日摸夜夜摸av| 国产成都精品91一区二区三| 久久久99精品免费观看| 国产一区二区电影| 国产欧美精品一区| 99久久久无码国产精品| 中文字幕一区二区三区四区不卡 | 国产亚洲短视频| 成人国产在线观看|