一.线程概念
1.使用线程要引入头文件<process.h>
2._beginthread(函数名,0,NULL);
例:
<span style="font-size:24px;">#include<windows.h>
#include<process.h>//进程
void main1()
{
for (int i = 0; i < 5;i++)
{
MessageBoxA(0, "hello", "hacker", 0); //顺序执行
}
}
void run(void *p)//void *p,, 代表一个空地址,没有类型
{
MessageBoxA(0, "hello", "hacker", 0);
}
void main()//主线程的入口点
{
for (int i = 0; i < 5; i++)
{
//run(NULL);
_beginthread(run, 0, NULL);//启动线程,函数地址,吧函数当作某个线程入口点
}
system("pause");
}</span>
二.模块概念
1.dll:模块,不需要main函数
2.可用dll模块化工具注入进程
例:
#include<Windows.h>
//dll不需要main函数
//导出接口
_declspec(dllexport) void go()
{
MessageBoxA(0, "来自百度的邀请", "因为你的百度网盘存放了大量的岛国大片,公安局要求你协助调查", 0);
//MessageBoxA(0, "李彦宏请你百度喝茶", "西二旗百度大厦不见不散", 0);
for (int i = 0; i < 200;i++)
{
malloc(1024*1024*10);
Sleep(1000);
}
}
十五.整数逆转
1.递归往往把循环趋于终止的参数放在调用参数