day01

windows程序的入口地址

对于windows程序来说,我们的入口地址是不一样的

比如说,对于我们控制台程序来说程序的入口是main函数

但是对于我们窗口程序来说,也就是程序的窗口来说是 WinMain

动态库,也就是我们写出来的函数之后的动态库函数 程序 是通过dllMain来实现的,但是DllMain 是不能单独执行的,它是依附于程序进行的

同时对于静态库,则没有入口函数

同时我们来看看 : 对于控制台程序,窗口程序 ,我们可以直接在debug目录下去直接寻找到我们的exe文件的,也就是我们程序执行之后生成的文件

我们在动态库程序生成的就是DLL文件

而我们在静态库程序中生成的则是lib文件 (静态库文件)这里和Linux下的libc库有点像哦

同时我们这里补充一下文件常识:.so 文件是Linux下的动态链接库文件 .dll 文件是windows下的动态链接库文件格式

windows编译过程:

我们普通的c语言程序是直接通过gcc 实现的编译以及链接的过程,但是对于我们windows来说实现过程则是

通过的 CL.EXE文件将源码编译成目标代码 ,通过LINK.EXE将目标代码、库链接到一起生成一个最终文件,以及资源编译器RC.EXE将资源编译最终通过链接器存入最终文件

第一个windows代码程序:

#include <windows.h>  
#include <stdio.h>  
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	// 显示一个带有“确定”按钮和信息图标的消息框  
	MessageBox(NULL, L"欢迎使用这个程序!", L"欢迎信息", MB_YESNOCANCEL | MB_ICONINFORMATION);
	return 0; /*这里期望得到一个长指针到常量宽字节字符串,这里加上L是直接将字符串转为宽字节字符串*/
}
posted @ 2024-04-19 14:02  fisherman-ovo  阅读(14)  评论(0)    收藏  举报