递归火山软件开发平台
标题:
希望斟酌
[打印本页]
作者:
urenai
时间:
2024-3-5 22:23
标题:
希望斟酌
本帖最后由 urenai 于 2024-3-5 23:11 编辑
<火山程序 类型 = "通常" 版本 = 1 />
类 内存_基本信息 <公开 基础类 = 本地结构模板 @别名 = "MEMORY_BASIC_INFORMATION" @模板实现类 = "内存_基本信息">
{
变量 区域基地址 <公开 类型 = 通用指针 @输出名 = "BaseAddress">
变量 分配基地址 <公开 类型 = 通用指针 @输出名 = "AllocationBase">
变量 原始保护 <公开 类型 = 无符号整数 @输出名 = "AllocationProtect">
变量 "//分区ID" <公开 类型 = 无符号短整数 @输出名 = "PartitionId">
变量 区域大小 <公开 类型 = 无符号尺寸 @输出名 = "RegionSize">
变量 状态 <公开 类型 = 无符号整数 @输出名 = "State">
变量 保护 <公开 类型 = 无符号整数 @输出名 = "Protect">
变量 类型 <公开 类型 = 无符号整数 @输出名 = "Type">
#
}
复制代码
<火山程序 类型 = "通常" 版本 = 1 />
变量 s <类型 = 内存_基本信息 @输出名 = "mem_">
虚拟.取信息Ex (_取自进程伪句柄 (), s.取地址 ().到变整数 (), s)
调试输出 (s.区域基地址.到变整数 ())
复制代码
MEMORY_BASIC_INFORMATION mem_;
ZERO_MEM (&mem_, sizeof (mem_));
::VirtualQueryEx((HANDLE)((INT_P)::GetCurrentProcess()),(LPVOID)(INT_P)((void*)&mem_),&mem_,sizeof(MEMORY_BASIC_INFORMATION));
_DEBUG_STATMENT (DebugTrace (FALSE, 0, 0, _T ("n"), (INT_P)mem_.BaseAddress));
复制代码
结构体基本上算是彻底搞定了。
就是定义基础数据类型还是超级无敌蛋疼。
<火山程序 类型 = "通常" 版本 = 1 />
类 对象句柄 <公开 基础类 = 扩展整数型模板 折叠2 @别名 = "HANDLE" @模板实现类 = "对象句柄">
复制代码
因为根本没法直接使用,举例说: A(HANDLE P) , 你要想入参,你得先定义个变量,再给变量赋值,在用变量入参。
还不能强转。。。。
为什么就不能直接:
typedef unsigned int MyUint32;
复制代码
(, 下载次数: 43)
上传
点击文件名下载附件
????
孬好还能强转了继续使用。
希望斟酌一下,开放允许自己定义类型,定义火山数据类型。
你把数据类型卡的死死的,来回真的好累,你看看上面
(LPVOID)(INT_P)((void*)&mem_) 根本就没必要。
作者:
创世魂
时间:
2024-3-6 08:04
没看明白。。
作者:
urenai
时间:
2024-3-6 11:53
本帖最后由 urenai 于 2024-3-6 11:59 编辑
创世魂 发表于 2024-3-6 08:04
没看明白。。
typedef unsigned int MyUint32;
复制代码
允许用户自己定义数据别名类型
@定义数据类型别名 的类,不允许有 变量、方法、常量。
翻译完 也就是 一行代码就OK了
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4