C语言也能干大事----第一讲笔记

1.开发C语言WINDOWS程序,平时的学习中都是用的WIN 32 Console Application ,而WIN 32 Application 是C语言图形化界面使用的

    Win32 Application和Win32 Console Application区别

       (1)Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。Win32 Application是为你开发windows应用程序所准备的,程序以WinMain()为入口,#include<windows.h>,能够使用win32 API函数。
      (2)Win32 Console Applicationwin32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,它与纯dos程序区别是:它是32位的;或者叫CUI(Character User Interface字符用户接口)console程序以main()为入口,不能使用win32 API函数。

 

2.以前一直没有注意main(int argc, char *argv[])里面的2个参数是什么意思,有什么用,现在看到很多编程书直接就用到了这2个参数。

     第一个是参数个数,第二个是参数列表. 比如 a.exe   a   b   c,参数个数就是3,argv[0]a,argv[1]b,argv[2]c

 

3.编译时找不到xxx.pch

 

        原因:这时因为该模块没有包括预编译头文件“stdafx.h”的缘故。VC用一个stdafx.cpp包含头文件stdafx.h,然后在stdafx.h里包含大部分系统头文件,这样编译时VC就通过编译stdafx.cpp把大部分系统头文件预编译进来了,在Debug目录下有一个很大的文件*.pch,这里就存储了预编译信息。根据这个原理,如果这个pch损坏了或被删除了,系统重新编译时就会抱怨“cannot open precompiled header file debug/*.pch”。这时怎么解决这个问题呢,打开Project-》Setting对话框选C+页,将Category下拉式列表框选中Precompiled Headers,最简单的办法就是选中第一个选项“Not using....",这样就根本不用预编译头也不去寻找pch文件,就不会出错了,但是这样做的后果是每次编译、连接都化更多的时间。

 

4.MessageBox

 

MessageBox:是编程过程中,为了达到提示效果而设计的消息提示框。根据实际使用的不同需求,可以设定不同的参数值。

形如:MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);

TEXT是一个宏。MB_后面是大写,小写就会报错.因为后面跟的是windows定义好的宏常量。MB后面也可以跟上图标,如ICONQUESTION.如果既要图标也要文字,MB_YESNO|MB_ICONQUESTION.

MessageBox是有返回值的

#include "stdafx.h"
 int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
              // TODO: Place code here.
               int ret=MessageBox(NULL,TEXT("你超过18岁了吗?"),TEXT("提问"),MB_YESNO|MB_ICONQUESTION);
    if(ret==IDYES)
               {
                               MessageBox(NULL,TEXT("你是成人了"),TEXT("回复"),MB_OK);
               }
               else
               {
                               MessageBox(NULL,TEXT("你是未成人了"),TEXT("回复"),MB_OK);      
               }
               return 0;
}

 

5.if(IDYES==ret)写法会好点

if(ret==IDYES)if(IDYES==ret)的效果一样,但写成if(IDYES==ret)的话,若把==写为=,则编译器会报错。

还有要注意的是在if 和else里面,哪怕只有一行代码,最好加上括号。

 

 

 



 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值