标题:
[转帖]简单说明什么是C 什么是WINDOWS C
[打印本页]
作者:
kkting
时间:
2006-5-16 17:55
标题:
[转帖]简单说明什么是C 什么是WINDOWS C
简单说明什么是C 什么是WINDOWS C 信息来源:中国华北黑客联盟(www.hbhacker.net/bbs) 文章作者:kaoiki 我想大家。接触C。至少知道C很久了。。 但是又没有考虑过。普通的C与windows c 的区别呢 我想很多人都看过谭老师的C教程, 一般看篇就是Hello word的范例(我这里用hello kaoiki) ----------------------- main() { printf("Hello kaoiki"); } ----------------------- 如果写得完整些。比如类似JAVA的带参形式(其实就是看起来专业点) -----------------------main(int arge,char *argv[]){ printf("Hello,kaoiki!");}----------------------- 以上的就是普通的C。大家应该很熟悉下面我们来说一下什么是WINDOWS C。其实区别不是很大。毕竟都是C。 但是既然是windows c,当然要用到windows.h头文件,其实说白了只有两点不同。 1. 主函数main接收的形参不再只是命令行中的字符串的首地址和字符串的个数。 2. C语言的很多函数在Windows C中都可以继续使用,但象printf()屏幕显示等函数就不能继续使用了。 因为Windows是多任务操作系统,屏幕已不再为某一个应用程序所独有, Windows C应用程序要显示字符串,需要使用Windows提供的API函数,开自己的窗口。 所以真正的windows c是不用printf来显示的..当然了.不是真正的windows c一样可以在win下编译生成目标文件.来运行. 其中你就可以使用你习惯的printf我们来看看范例就会明白了------------------- ----#include
APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { MessageBox(NULL,"Hello,kaoiki!","第一个Windows C程序",MB_OK|MB_ICONASTERISK); }----------------------- 主函数的形参有四个:(其中解释我通过查MSDN后自己归纳得来.呵呵,我也算认真了.不能误人子弟) 1) Hinstance:接收程序运行时当前实例的句柄; 2) HprivInstance:前一个实例的句柄; 3) LpCmdLine:程序命令行指针; 4) NcmdShow:一个用来指定窗口显示方式的整数。 这几个参数的使用我们会在深入的学习中介绍的。显示Hello,Word!字符串,我们使用了一个MessageBox函数,这个函数会在屏幕上显示一个对话框, 它的原型是:int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UNIT uType) 使用这个函数要包含windows.h头文件。测试,会弹出了一个“第一个Windows C程序”对话框,上面有一行字:“Hello,kaoiki!”。 (补充说明一点.2k5中不知ms是不是为了完全将语言建于.net之上.其中没有 windows.h和windowsx.h两个头文件.) 深入编程: 在C语言中,函数的声明,如果没有指明返回值类型,缺省值为void,这个程序的主 函数就没有返回值。不过,在Windows编程时,我们最好养成个好习惯,指明函数的返回值类型,因为在C++中,函数返回值类型是不可以缺省的。而我们 在Windows C编程时,还是会用到C++的一些概念,这样做,有利于以后深入地学习。规范一点的程序应该是这样的: ----------------------- #include
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { MessageBox(NULL,"Hello,kaoiki!","第一个Windows C程序",MB_OK|MB_ICONASTERISK ); return 0;} ----------------------- 这里,我们声明的均为int型,返回0,这样的函数就可以使用在复杂一点的函数调用中了。 在本文中,我们有几处都提到了句柄的概念,句柄和指针的概念不同,它是作为操作系统内部索引表中的一个值来使用的, 这样可以防止应用程序直接访问名对象的内部结构,体现了Windows资源管理的优越性。 譬如说,一个窗口找开之后,好对应内存中的一个内存块,这个窗口所在的内存快地址往往会由操作系统做动态的调整,但其却不会随之变化。 不过,通过它可以访问这个窗口,所以在使用的时候,可以把它当做指针一样看待。 要看高深的。从基础开始。我回发这篇文章也是因为问了很多人 几乎没有一个人可以告诉我。什么是C。什么是WINDOWS C。 我想。大多数人。都觉得没什么区别吧。。会用到WINDOWS这些头文件的。几乎也不多。除非是必须的。 呵呵。所以说。谭老师的例子。都不是windows c 所以他的书叫c语言程序设计。而不是windows c 语言程序设计
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2