Windows下C语言网络编程
C语言的学习,一般的方式是,先学C,然后是C++,最好还要有汇编语言和微机原理基础,然后才是Visual C++。这样的方式,对学习者来说,要花费很多时间和耐力。而在学校教学中,也没有时间深入学习Windows编程的实用技术了。
  其实,具有了C语言基础后,再有一些基本的C++类的概念,就可以直接学习Windows C编程了。
  一、走近Windows C语言
  很多语言都把显示一个“Hello,World!”做为第一个入门程序, C语言的第一个程序是这样的:
怎么用printf输出bool函数值
#include<stdio.h>
main()
{
 printf(“Hello,World!”);
}
  如果把main函数写成带参数的main函数,应该是:
#include<stdio.h>
main(int arge,char *argv[])
{
 printf(“Hello,World!”);
}
2)间接使用价值。间接使用价值(IUV)包括从环境所提供的用来支持目前的生产和消费活动的各种功能中间接获得的效益。
  Windows C的第一个程序和这个程序在形式和原理上都是一致的,只是有两点不同:
  1. 主函数接收的形参不只是命令行中的字符串的个数和字符串的首地址。
  2. C语言的很多函数在Windows C中都可以继续使用,但象printf()屏幕显示等函数就不能继续使用了。因为Windows是多任务操作系统,屏幕已不再为某一个应用程序所独有,Windows C应用程序要显示字符串,需要使用Windows提供的API函数,开自己的窗口
  下面是一个最简单的,显示“Hello,World!”的Windows C程序:
1.环境总经济价值的构成#include<windows.h>
APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
 MessageBox(NULL,"Hello,World!","第一个Windows C程序",MB_OK|MB_ICONASTERISK);
}
(6)列出选定的评价方法,并作简单介绍。
  主函数的形参有四个:
  1) Hinstance:接收程序运行时当前实例的句柄;
  2) HprivInstance:前一个实例的句柄;
  3) LpCmdLine:程序命令行指针;
  4) NcmdShow:一个用来指定窗口显示方式的整数。
  这几个参数的使用我们会在深入的学习中介绍的。
  显示Hello,Word!字符串,我们使用了一个MessageBox函数,这个函数会在屏幕上显示一个对话框,它的原型是:
int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UNIT uType)
2.环境保护行政法规
  四个参数分别是:
  1) HWnd:父窗口的句柄;
  2) LpText:要显示字符串的指针;
  3) LpCaption:对话框标题字符串的指针;
  4) UType:显示在对话框上的小图标的类型。
  使用这个函数要包含windows.h头文件。
  调试一下,怎么样?窗口上弹出了一个“第一个Windows C程序”对话框,上面有一行字:“Hello,World!”。
  世界真的很美好啊!!
  深入编程:
  在C语言中,函数的声明,如果没有指明返回值类型,缺省值为void,这个程序的主函数就
没有返回值。不过,在Windows编程时,我们最好养成个好习惯,指明函数的返回值类型,因为在C++中,函数返回值类型是不可以缺省的。而我们在Windows C编程时,还是会用到C++的一些概念,这样做,有利于以后深入地学习。
  规范一点的程序应该是这样的:
(四)建设项目环境影响评价资质管理#include<windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"Hello,World!","第一个Windows C程序",MB_OK|MB_ICONASTERISK);
return 0;
}
环境影响评价工程师课主持进行下列工作:
  这里,我们声明的类型为int型,并且返回一个值0,这样的函数就可以使用在复杂一点的函
数调用中了。
  在这一节中,我们有几处都提到了句柄的概念,句柄和指针的概念不同,它是作为操作系统内部索引表中的一个值来使用的,这样可以防止应用程序直接访问名对象的内部结构,体现了Windows资源管理的优越性。譬如说,一个窗口开之后,好对应内存中的一个内存块,这个窗口所在的内存快地址往往会由操作系统做动态的调整,但其却不会随之变化。不过,通过它可以访问这个窗口,所以在使用的时候,可以把它当做指针一样看待。
疾病成本法和人力资本法是用于估算环境变化造成的健康损失成本的主要方法,或者说是通过评价反映在人体健康上的环境价值的方法。二、 获取本地计算机的主机名和IP地址
  和C语言一样,函数是Windows C编程的最基本的单位。不过,Windows C主要使用API函数,而网络编程则主要使用Winsock提供的API函数。
  Winsock是90年代初,为了方便网络编程,由Microsoft联合了其他几家公司共同制定的一套WINDOWS下的网络编程接口,它是通过C语言的动态链接库方式提供给用户及软件开发者的,主要由winsock.h头文件和动态链接库winsock.dll组成,目前有两个版本:Winsock1.1和Winsock2.0。
  在Win32平台上,访问众多的基层网络协议,Winsock是首选接口。
  用Visual C++6.0编译Windows C程序,使用Winsock API函数时,首先要把wsock32.lib添加到它的库模块中,否刚在链接的时候,会出现“error LNK2001”错误。添加wsock32.lib的具体步骤是:打开工程菜单,选择设置,在弹出的Project settings对话框中,点击link选项卡,然后在对象/库模块文本框中添加wsock32.lib。