zzh233 发表于 2022-1-26 12:17:45

以下这个api如何嵌入式封装

LPVOID VirtualAllocEx(         HANDLE hProcess, LPVOID lpAddress,         SIZE_T dwSize,         DWORDflAllocationType,         DWORDflProtect);


我想学习 嵌入式 比如   类似 @ ::WriteProcessMemory((HANDLE)@<进程句柄>,(LPCVOID)@<内存基址>,(LPVOID)@<缓冲区指针>,(SIZE_T)@<缓冲区指针大小>,(SIZE_T *)&@<实际读取字节数>)


上面的能不能帮我写个范例 改成 嵌入式的
另外这个嵌入式的最后一个 (SIZE_T *)& 这个 &是啥意思


@福寿

Xelloss0618 发表于 2022-1-26 15:34:50

跟你那个 WriteProcessMemory 的例子没多少区别的
&是取变量指针的操作符,这个建议你看一下 C++ 的基础语法

zzh233 发表于 2022-1-27 01:34:32

Xelloss0618 发表于 2022-1-26 15:34
跟你那个 WriteProcessMemory 的例子没多少区别的
&是取变量指针的操作符,这个建议你看一下 C++ 的基础语 ...

万分感谢您的回复 我想问一下 我那个例子 前面两个:: 这个直接一个@ 是不是有返回的和没返回的区别

Xelloss0618 发表于 2022-1-27 10:53:23

:: 是作用域,这里表示全局函数,如果类里面有跟 API 同名的方法,不加就会使用类里面的方法,加了是用 API。大部分 Win32 API 都没有同名的函数,一般可以不加 ::。

这里火山方法的属性加了「嵌入式方法」,语句后面的分号不要填,有没返回值只需要设置返回值类型,不需要也不能写 return,这个 API 返回的是 LPVOID,火山里没有这个类型,所以前面加 (INT_P) 强制类型转换成变整数。

属性「嵌入式方法」适合单条语句的,效率更高,如果多条嵌入式语句的,就不能用了,需要语句后面正常加分号和写 return
页: [1]
查看完整版本: 以下这个api如何嵌入式封装