Windows进程
进程是一个容器,包含程序执行需要的代码、数据、资源等信息,
windows进程的特点:
每个进程都有自己的ID号
每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。
每个进程都有自己的安全属性
每个进程至少包含一个线程。
获取和释放环境信息
GetEnvironmentStrings
Windows进程
进程是一个容器,包含程序执行需要的代码、数据、资源等信息,
windows进程的特点:
每个进程都有自己的ID号
每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。
每个进程都有自己的安全属性
每个进程至少包含一个线程。
获取和释放环境信息
GetEnvironmentStrings
windows系统磁盘文件存储:
分区格式:NTFS / FAT32
GetSystemDirectory();//获取系统路径
GetWindowsDirectory();//获取windows路径
GetCurrentDirectory();//获取当前工作目录
SetCurrentDirectory();//修改当前工作目录
windows库程序:
静态库:
源代码被链接到调用的程序或动态库,被调用时,代码最少有1份,文件后缀.LIB
动态库: 函数被程序或其他动态库调用,被调用时,代码只有1份,文件后缀.DLL
静态库(C语言):
//设置字体颜色
SetTextColor(hdc,RGB(255,0,0));
//窗口背景
//wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
//wce.hbrBackground=CreateSolidBrush(RGB(0,0,255));
//设置字体背景
SetBkColor(hdc,RGB(0,0,200));
可视化操作创建的菜单,加载到窗口。
方法1:注册时指定菜单
wce.lpszMenuName=MAKEINTRESOURCE(IDR_MENUMAIN);//数字形式的资源ID转换为字符串形式的资源
方法2:
//创建窗口时加载菜单资源
HMENU menumain= LoadMenu(g_hinstance,MAKEINTRESOURCE(IDR_MENUMAIN));
menumain 传入 CreateWindowEx();//倒数第三个参数
创建菜单:
HMENU CreateMenu(VOID);
添加菜单项:
BOOL AppendMenu( HMENU hMenu, // handle to menu
UINT uFlags, // menu-item options
UINT_PTR uIDNewItem, // identifier, menu, or submenu
windows消息机制、消息格式和消息处理1
unicode支持,windows下用:
1、先在#include<windows.h>上面,定义 UNICODE
#define UNICODE
2、定义字符串
TCHAR * ptxt=TEXT("学习hello c++");
3、根据需要,打印不同格式字符串
#ifdef UNICODE
wprintf(L"%s ",ptxt);
windows编程介绍、windows 库和头文件介绍
exe文件:.exe,可执行文件
静态库文件:*.lib,调用时,源代码嵌入到调用位置
动态库文件:*.dll,调用时,函数地址被传入
--写编译软件,要懂编译原理.
windows 库和头文件
kernel32.dll-提供了核心的API,例如进程、线程、内存管理等
user32.dll-提供了窗口消息等API
//myuc.h
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> #include<string.h> #include<sys/types.h> #include<sys/mman.h> #include<sys/stat.h>
函数说明:
code1
#include<stdio.h> #include<unistd.h> int main() { void* empty=sbrk(0); void * p1=sbrk(4);//虚拟内存映最少射一个内存页4096字节 int *pi=p1; *(pi+2)=120;//给p3赋值 void* p2=sbrk(4); void* p3=sbrk(4); printf("p1=%p,p2=%p,p3=%p ",p1,p2,p3); sbrk(-8); sbrk(4093); printf("4097字节 "); sleep(15); sbrk(-1); printf("4096字节 "); sleep(15); sbrk(-4096); printf("0字节 "); sbrk(123); double * pd=sbrk(0);//取最后空间的首地址 brk(pd+1);//分配一个double空间 int result=brk(empty);//回收所有 //printf("p1=%p,p2=%p,p3=%p ",p1,p2,p3); //printf("p3=%d ",*(int*)p3); return 0; }
code2
Powered By Z-BlogPHP 1.7.3
Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号