WindowsAPI笔记

WindowsAPI笔记

GetModuleHandleA

HMODULE GetModuleHandleA(
  LPCSTR lpModuleName
);

1.如果参数为空,那么返回当前进程的句柄

注意:返回的句柄就是该进程在内存中的基址(ImageBase)

句柄->基址------牢记

2.如果指定了参数,不给扩展名(如:.exe,.dll),那么默认是dll文件

该函数就会在程序进程中查找与参数相同的模块字符串

找到了,就返回该模块的句柄

没找到,返回NULL

GetModuleFileNameA

DWORD GetModuleFileNameA(
  HMODULE hModule,
  LPSTR   lpFilename,
  DWORD   nSize
);

1.如果参数hModule为空,那么返回当前可执行文件的绝对路径字符串的长度,缓冲区lpFilename会存放该路径字符串,nSize表示最多保存多大的字符串(防止溢出)

2.如果指定了hModule,返回指定的模块的路径字符串的长度,缓冲区lpFilename中会存放该路径字符串,注意,这里指定的模块必须是已经加载到该进程之中的模块

WideCharToMultiByte

将字符串(宽字节字符串,也就是unicode字符串)映射到一个新的字符串(多字节字符串,可以是ANSI字符串)

宽字节字符串:每个字符2个字节

多字节字符串:每个字符可以是1个字节(1个字节就是ANSI),也可以是2个字节

int WideCharToMultiByte(
  UINT                               CodePage,
  DWORD                              dwFlags,
  _In_NLS_string_(cchWideChar)LPCWCH lpWideCharStr,
  int                                cchWideChar,
  LPSTR                              lpMultiByteStr,
  int                                cbMultiByte,
  LPCCH                              lpDefaultChar,
  LPBOOL                             lpUsedDefaultChar
)

参数:

CodePage

用于执行转换的代码页。可以将此参数设置为操作系统中已安装或可用的任何代码页的值。

如:CP_A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值