递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 5488|回复: 3
打印 上一主题 下一主题

[视窗] 以下这个api如何嵌入式封装

[复制链接]

30

主题

235

帖子

1409

积分

金牌会员

Rank: 6Rank: 6

积分
1409
跳转到指定楼层
楼主
发表于 2022-1-26 12:17:45 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
LPVOID VirtualAllocEx(  [in]           HANDLE hProcess,  [in, optional] LPVOID lpAddress,  [in]           SIZE_T dwSize,  [in]           DWORD  flAllocationType,  [in]           DWORD  flProtect);


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


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


@福寿
回复

使用道具 举报

26

主题

1905

帖子

6945

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6945
地板
发表于 2022-1-27 10:53:23 | 只看该作者
:: 是作用域,这里表示全局函数,如果类里面有跟 API 同名的方法,不加就会使用类里面的方法,加了是用 API。大部分 Win32 API 都没有同名的函数,一般可以不加 ::。

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

属性「嵌入式方法」适合单条语句的,效率更高,如果多条嵌入式语句的,就不能用了,需要语句后面正常加分号和写 return
回复

使用道具 举报

30

主题

235

帖子

1409

积分

金牌会员

Rank: 6Rank: 6

积分
1409
板凳
 楼主| 发表于 2022-1-27 01:34:32 | 只看该作者
Xelloss0618 发表于 2022-1-26 15:34
跟你那个 WriteProcessMemory 的例子没多少区别的
&是取变量指针的操作符,这个建议你看一下 C++ 的基础语 ...

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

使用道具 举报

26

主题

1905

帖子

6945

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6945
沙发
发表于 2022-1-26 15:34:50 | 只看该作者
跟你那个 WriteProcessMemory 的例子没多少区别的
&是取变量指针的操作符,这个建议你看一下 C++ 的基础语法

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-28 22:48 , Processed in 0.088308 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表