什么是SDK啊?干吗用的?怎样用?

kuki84 2003-07-17 03:50:03
如题。
另外如题写一个窗口,上有一button,点击后输出消息 HELLO,WORLD该怎么做?
...全文
246 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuki84 2003-07-17
  • 打赏
  • 举报
回复
ok,收获了。结帖:
木鱼:5分
爱翔:14分
爱翔:关于黄瓜的问题,虽燃他读懂“黄瓜是“黄色的瓜””,但说的概念上没错,1分。
多谢2位。
darkhorsedba 2003-07-17
  • 打赏
  • 举报
回复
真的看晕了!!
yckxzjj 2003-07-17
  • 打赏
  • 举报
回复
ShowMessage('Hello World');
reallike 2003-07-17
  • 打赏
  • 举报
回复
另外,黄瓜就是黄色的瓜,那是等到它熟透了的时候。

外皮是金黄色的,而我们平时吃的是嫩瓜。外皮是绿色的。

黄瓜是“黄色的瓜”解释,没有错误。就是这个意思。
reallike 2003-07-17
  • 打赏
  • 举报
回复
如果想要hello world很简单,我也懒得加了。

invoke MessageBox就可以了。
reallike 2003-07-17
  • 打赏
  • 举报
回复
programming windows用C来描述的。

罗云彬大哥的windows环境下32位汇编语言程序设计很不错。

pascal就不说了,delphi当然可以写,但是没有必要那么麻烦。

汇编的例子如下,使用Masm32编译之后就是一个窗口加一个按钮:

我没有设什么hello world,就这样了:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include gdi32.inc
includelib gdi32.lib
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data?

hInstance dd ?
hWinMain dd ?

.const
szClassName db 'MyClass',0
szCaptionMain db 'My first Window !',0
szText db 'Win32 Assembly, Simple and powerful !',0
szButton db 'button',0
szButtonText db '&OK',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 窗口过程
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcWinMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
local @stPs:PAINTSTRUCT
local @stRect:RECT
local @hDc

mov eax,uMsg
;********************************************************************
.if eax == WM_PAINT
invoke BeginPaint,hWnd,addr @stPs
mov @hDc,eax

invoke GetClientRect,hWnd,addr @stRect
invoke DrawText,@hDc,addr szText,-1,\
addr @stRect,\
DT_SINGLELINE or DT_CENTER or DT_VCENTER

invoke EndPaint,hWnd,addr @stPs
;********************************************************************
; 建立一个按钮
;********************************************************************
.elseif eax == WM_CREATE
invoke CreateWindowEx,NULL,\
offset szButton,offset szButtonText,\
WS_CHILD or WS_VISIBLE,\
10,10,65,22,\
hWnd,1,hInstance,NULL
;********************************************************************
.elseif eax == WM_CLOSE
invoke DestroyWindow,hWinMain
invoke PostQuitMessage,NULL
;********************************************************************
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.endif
;********************************************************************
xor eax,eax
ret

_ProcWinMain endp

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WinMain proc
local @stWndClass:WNDCLASSEX
local @stMsg:MSG

invoke GetModuleHandle,NULL
mov hInstance,eax
invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
;********************************************************************
; 注册窗口类
;********************************************************************
invoke LoadCursor,0,IDC_ARROW
mov @stWndClass.hCursor,eax
push hInstance
pop @stWndClass.hInstance
mov @stWndClass.cbSize,sizeof WNDCLASSEX
mov @stWndClass.style,CS_HREDRAW or CS_VREDRAW
mov @stWndClass.lpfnWndProc,offset _ProcWinMain
mov @stWndClass.hbrBackground,COLOR_WINDOW + 1
mov @stWndClass.lpszClassName,offset szClassName
invoke RegisterClassEx,addr @stWndClass
;********************************************************************
; 建立并显示窗口
;********************************************************************
invoke CreateWindowEx,WS_EX_CLIENTEDGE,offset szClassName,offset szCaptionMain,\
WS_OVERLAPPEDWINDOW,\
100,100,600,400,\
NULL,NULL,hInstance,NULL
mov hWinMain,eax
invoke ShowWindow,hWinMain,SW_SHOWNORMAL
invoke UpdateWindow,hWinMain
;********************************************************************
; 消息循环
;********************************************************************
.while TRUE
invoke GetMessage,addr @stMsg,NULL,0,0
.break .if eax == 0
invoke TranslateMessage,addr @stMsg
invoke DispatchMessage,addr @stMsg
.endw
ret

_WinMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
call _WinMain
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
sixgj 2003-07-17
  • 打赏
  • 举报
回复
SDK Software Development Kit, 软件开发工具包
kuki84 2003-07-17
  • 打赏
  • 举报
回复
感谢木鱼,流水不腐,天使和爱翔。
//============================================================================
另外,就黄瓜的问题,假如我没见过黄瓜,哪天听说了这个东西,我一定会找个人问,什么是黄瓜啊(长的什么样子?不要回答是:黄瓜就是 “黄色 的瓜”),干什么用的(主食?做菜?水果?。。。)怎么样吃(用微波炉考?象油条一样炸?放入碗中,加开水浸泡5分钟后即可食用?)因为有人知道它,所以不妨问问,以便更快更好的知道怎么吃它。
//============================================================================
我才听到SDK这个东西,所以发个帖子想了解一下。我没有“一个窗口,上有一button,点击后输出消息 HELLO,WORLD”这项工程,只是想有个能引导入门的概念,(我怕问怎样用SDK来写《红色警戒》回答起来太耽误几位老师的时间,所以换了个模型些的问题),有一点点了解后,剩下的事情自己来学。
所以,还是诚恳的再麻烦几位老师,问一下这个问题:
什么是SDK啊?干吗用的?怎样用? 和那段代码(或代码片段),
当然,不是要逐条回答这几个问题,谈谈你们自己的经验,或启发一下看哪些书(如programing windows)那些网页好一点,只要不是概念层的,就都是回答了。
刚才惊喜的看到爱翔可以用ASM来写,非常高兴,如果爱翔有空的话,请把用asm的代码贴出来,谢谢。
用了这么多字才把想法完全表达出来,见笑了,呵呵。
还谢谢诸位的批评,这段话中如还有让大家忍不住有善意批评我的欲望,请不要吝啬键盘:)

reallike 2003-07-17
  • 打赏
  • 举报
回复
我当然知道他或者她或者它要用SDK做这个。

所以我才问他或者她或者它要用什么语言来描述。

ASM C Pascal……
Geranium 2003-07-17
  • 打赏
  • 举报
回复
后面又陈腔滥调了@_@

他要SDK做这个玩意,哈哈

Geranium 2003-07-17
  • 打赏
  • 举报
回复
精彩!有新意!

^_^
reallike 2003-07-17
  • 打赏
  • 举报
回复
唉……我怎么成了这样呢?

最后一遍回答你的问题。

>>什么是SDK啊?

这个上面有人已经回答了。

>>干吗用的?

好像不是吃的,应该是编写程序用的?我希望是吃的东西。

>>怎样用?

最后一遍说:看经典的<programming windows>。

我不会再说这本书的名字了。我厌倦了!

>>另外如题写一个窗口,上有一button,点击后输出消息 HELLO,WORLD该怎么做?

你需要什么版本的?Asm,C,Pascal?
reallike 2003-07-17
  • 打赏
  • 举报
回复
另外,我很懒,Windows SDK怎么用,以及说明介绍可以写一本1000多页的书。

大家说,我说得不为过吧。

何况,SDK还不止这个,还有工控的SDK,各种形式的SDK,我怎么解答你?
reallike 2003-07-17
  • 打赏
  • 举报
回复
你不会看书吗?看看你的提问:

“什么是SDK啊?干吗用的?怎样用?”

就差做好了喂给你吃了。

如果我换成黄瓜。

什么是黄瓜啊,干吗用的,怎样用?

我怎么回答?

如果我换成螺丝。

什么是螺丝啊,干吗用的,怎样用?

我怎么回答?

如果是黄瓜,我建议你看食谱。

如果是螺丝,我建议你看说明书。

如果是SDK,我不建议了,因为那几个字我说了N遍了。

请你动动你的手指头,搜索一下论坛的旧帖子好吗?
Geranium 2003-07-17
  • 打赏
  • 举报
回复
哈哈…………
mrfanghansheng 2003-07-17
  • 打赏
  • 举报
回复
晕,原来问的是这个意思?!!?真的口吐白沫了……
kuki84 2003-07-17
  • 打赏
  • 举报
回复
那SDK怎么用呢
reallike 2003-07-17
  • 打赏
  • 举报
回复
召唤我?我又不是灯神!

SDK是螺丝,SDK是黄瓜,SDK是芯片组,SDK是你的手!

SDK就是SDK,就差不会说话了。

如果有人问题,某某是谁啊。我不会回答。
reallike 2003-07-17
  • 打赏
  • 举报
回复
啊?怎么来找我?我说了我不会再回答类似的问题了。
Geranium 2003-07-17
  • 打赏
  • 举报
回复
好好的控件不用,干吗要用SDK写啊?

口吐白沫,召唤爱翔中……
加载更多回复(4)

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧