win10必备运行库 windows运行库合集( 二 )


DLL 库的运用(运转时动静链接 DLL)
// A simple program that uses LoadLibrary and // GetProcAddress to access myPuts from Myputs.dll.#include <windows.h> #include <stdio.h>typedef int (__cdecl *MYPROC)(LPWSTR);int main( void ) {HINSTANCE hinstLib;MYPROC ProcAdd;BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;// Get a handle to the DLL module.hinstLib = LoadLibrary(TEXT("MyPuts.dll"));// If the handle is valid, try to get the function address.if (hinstLib != NULL){ProcAdd = (MYPROC) GetProcAddress(hinstLib, "myPuts");// If the function address is valid, call the function.if (NULL != ProcAdd){fRunTimeLinkSuccess = TRUE;(ProcAdd) (L"Message sent to the DLL functionn");}// Free the DLL module.fFreeResult = FreeLibrary(hinstLib);}// If unable to call the DLL function, use an alternative.if (! fRunTimeLinkSuccess)printf("Message printed from executablen");return 0;}运转库(Runtime Library)
典范步调运转办法
(1)操纵体例创造过程 , 把遏制权交给步调的进口(常常是运转库中的某个进口因变量)
(2)进口因变量对运转库和步调运转情况举行初始化(囊括堆、I/O、线程、全部变量结构之类) 。
(3)进口因变量初始化后 , 挪用 main 因变量 , 正式发端执路途序主体局部 。
(4)main 因变量实行结束后 , 归来到进口因变量举行整理处事(囊括全部变量析构、堆废弃、封闭I/O等) , 而后举行体例挪用中断过程 。
一个步调的 I/O 指代步调与外界的交互 , 囊括文献、管程、搜集、吩咐行、旗号等 。更广义地讲 , I/O 指代操纵体例领会为 “文献” 的实物 。
glibc 进口
_start -> __libc_start_main -> exit -> _exit
个中 main(argc, argv, __environ) 因变量在 __libc_start_main 里实行 。
MSVC CRT 进口
int mainCRTStartup(void)
实行如次操纵:
(1)初始化和 OS 本子相关的全部变量 。
(2)初始化堆 。
(3)初始化 I/O 。
(4)获得吩咐行参数和情况变量 。
(5)初始化 C 库的少许数据 。
(6)挪用 main 并记载归来值 。
(7)查看缺点并将 main 的归来值归来 。
C 谈话运转库(CRT)
大概包括如次功效:
启用与退出:囊括进口因变量及进口因变量所依附的其余因变量等 。
规范因变量:有 C 谈话规范规则的C谈话规范库所具有的因变量实行 。
I/O:I/O 功效的封装和实行 。
堆:堆的封装和实行 。
谈话实行:谈话中少许特出功效的实行 。
调节和测试:实行调节和测试功效的代码 。
C谈话规范库(ANSI C)
包括:
规范输出输入(stdio.h)
文献操纵(stdio.h)
字符操纵(ctype.h)
字符串操纵(string.h)
数学因变量(math.h)
资源处置(stdlib.h)
*** 变换(stdlib.h)
功夫/日子(time.h)
预言(assert.h)
百般典型上的常数(limits.h & float.h)
变长参数(stdarg.h)
【win10必备运行库windows运行库合集】非限制跳转(setjmp.h)

推荐阅读