Windows核心编程02-记事本写代码深入理解cl.exe和link.exe

本文介绍如何在Windows环境下使用记事本编写简单的C语言程序,并通过命令行工具进行编译和链接,最终运行程序。文章还解释了WinMain函数中参数的意义,并演示了如何利用命令行参数。

接下来用记事本手写代码:

  1,建一个空的记事本,敲入以下代码

#include "windows.h"
int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int cmdShow)
{
    MessageBox(NULL,"HelloWorld!","Info",MB_ABORTRETRYIGNORE|MB_ICONINFORMATION);
    return 0;
}

 

  2,打开CMD窗口,输入cl.exe /? 是否有报错,如果有报错 运行

    D:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT 

    盘符看VC 6.0的安装路径,这里也可以双击cl.exe如果报错缺少mspdb60.dll,到百度上去下个放到当前目录

  3,把当前目录切到记事本所在路径 cd D:\XXX\XXX\XXX

    把记事本改名为XXX.c 例如 hello.c

    1,编译:cl.exe /c hello.c 会生成一个hello.obj的文件

    2,链接:link.exe hello.obj user32.lib 会生成一个hello.exe

    双击hello.exe 弹出MessageBox

  4,WinMain参数 lpCmdLine 表示什么?

    把代码修改如下:

    

#include "windows.h"
int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int cmdShow)
{
    MessageBox(NULL,lpCmdLine,"Info",MB_ABORTRETRYIGNORE|MB_ICONINFORMATION);
    return 0;
}

  编译,链接....

  双击hello.exe ... 嗯 什么都没有,弹出来是空的 感觉被忽悠了

  随便拖一个文件到hello.exe 有没看到什么?MessageBox里显示拖进来文件的路径 知道lpCmdLine是什么了吧,也知道视频文件拖到播放器就可以播放是怎么实现的吧

    

句柄:现在暂时理解为句柄是用来找到内存的,绝对不是指针

LP开头的类型都是指针

int WINAPIWinMain(

    HINSTANCE hInstance,//当前程序的实例句柄

    HINSTANCE hPrevInstance,//当前程序前一个实例句柄

    LPSTR lpCmdLiine,//命令行参数字符串 char*

    int nCmdShow//窗口的显示方式,最大化,最小化...

    );

int MessageBox(

    HWND hWnd,//父窗口句柄,以h开头基本可以确定为句柄

    LPCTSTR lpText,//显示在消息中的文字 char*

    LPCTSTR lpCaption,//显示在标题栏中的文字

    UINT uType//消息框中的按钮、图标显示类型

    );返回点击的按钮ID

转载于:https://www.cnblogs.com/visions/p/5543682.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值