Windows核心编程02-记事本写代码深入理解cl.exe和link.exe
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows核心编程02-记事本写代码深入理解cl.exe和link.exe相关的知识,希望对你有一定的参考价值。
接下来用记事本手写代码:
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是什么了吧,也知道视频文件拖到播放器就可以播放是怎么实现的吧
句柄:现在暂时理解为句柄是用来找到内存的,绝对不是指针
int WINAPIWinMain(
HINSTANCE hInstance,//当前程序的实例句柄
HINSTANCE hPrevInstance,//当前程序前一个实例句柄
LPSTR lpCmdLiine,//命令行参数字符串 char*
int nCmdShow//窗口的显示方式,最大化,最小化...
);
int MessageBox(
HWND hWnd,//父窗口句柄,以h开头基本可以确定为句柄
LPCTSTR lpText,//显示在消息中的文字 char*
LPCTSTR lpCaption,//显示在标题栏中的文字
UINT uType//消息框中的按钮、图标显示类型
);返回点击的按钮ID
编写窗口程序的步骤:
1 定义WinMain函数
2 定义窗口处理函数(处理消息)
3 注册窗口类
4 创建窗口(在内存中创建窗口)
5显示窗口(根据内存的数据将窗口绘制出来)
6消息循环(提取/翻译/派发)消息
7消息处理
资源的使用
编写资源的文件-.rc资源脚本文件
编写rc文件-RC.EXE
将资源链接到程序中-LINK.EXE
以上是关于Windows核心编程02-记事本写代码深入理解cl.exe和link.exe的主要内容,如果未能解决你的问题,请参考以下文章
spark 深入学习 05RDD编程之旅基础篇02-Spaek shell