有关c++结构的封装示例:
下面的程序演示了如何定义封装C++结构,以及如何封装内嵌结构,及内嵌结构数组:<火山程序 类型 = "通常" 版本 = 1 />
类 PROCESSENTRY32 <公开 @视窗.结构类 = 0>
{
变量 dwSize <公开 类型 = 整数>
变量 cntUsage <公开 类型 = 整数>
变量 th32ProcessID <公开 类型 = 整数>
变量 th32DefaultHeapID <公开 类型 = 变整数>
变量 th32ModuleID <公开 类型 = 整数>
变量 cntThreads <公开 类型 = 整数>
变量 th32ParentProcessID <公开 类型 = 整数>
变量 pcPriClassBase <公开 类型 = 整数>
变量 dwFlags <公开 类型 = 整数>
变量 szExeFile <公开 类型 = "短整数 " 注释 = "如果是A版本API使用,此处需要将\"短整数\"改成\"字节\".">
变量 ""
变量 成员2 <公开 类型 = 结构2 注释 = "内嵌结构">
变量 成员3 <公开 类型 = "结构2 " 注释 = "内嵌结构数组">
}
类 结构2 <公开 @视窗.结构类 = 0>
{
变量 dwSize <公开 类型 = 整数>
变量 cntUsage <公开 类型 = 整数>
变量 成员2 <公开 类型 = 结构3>
}
类 结构3 <公开 @视窗.结构类 = 0>
{
变量 dwSize <公开 类型 = 整数>
变量 cntUsage <公开 类型 = 整数>
}
沙发。。。。。 :D原来如此,都支持复制,粘贴多行代码了? 前排留名:loveliness: 呵呵仙8 发表于 2023-7-18 18:11
原来如此,都支持复制,粘贴多行代码了?
已经支持了 结构嵌套封装例子 呵呵仙8 发表于 2023-7-18 18:11
原来如此,都支持复制,粘贴多行代码了?
你才发现啊,哈哈哈 typedef struct _RTL_PROCESS_MODULE_INFORMATION {
HANDLE Section; // Not filled in
PVOID MappedBase;
PVOID ImageBase;
ULONG ImageSize;
ULONG Flags;
USHORT LoadOrderIndex;
USHORT InitOrderIndex;
USHORT LoadCount;
USHORT OffsetToFileName;
UCHAR FullPathName;
} RTL_PROCESS_MODULE_INFORMATION, *PRTL_PROCESS_MODULE_INFORMATION;
typedef struct _RTL_PROCESS_MODULES {
ULONG NumberOfModules;
RTL_PROCESS_MODULE_INFORMATION Modules;
} RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES;
吴总,这种结构体呢,Modules[],这个是未知长度,需要通过NumberOfModules才知道。
这是我自己内嵌写的,如何用火山来表达?
本帖最后由 dengzf 于 2023-7-19 15:31 编辑
火山的 @视窗.结构类 中不支持使用文本型, 如何处理? 用指针吗下面这种呢?
另外 下面这些如何在火山语法中实现?
#define MAX_SPINDLE 24 这个宏的值是根据系统加载环境不同, 自动判断加载哪一个的 , 它的值 4, 8 ,24
typedef struct odbact2 {
short datano; /* spindle number */
short type; /* dummy */
long data; /* spindle data */
} ODBACT2 ;
还有这种, 宏值* 数值 的数组MAX_AXIS 也是一个条件变化的宏, 8 12 48 96这样
/* cnc_rdzofsr64:read work zero offset value(area specified) */
typedef struct iodbzor64 {
short datano_s; /* start offset number */
short type; /* axis number */
short datano_e; /* end offset number */
short dummy; /* dummy */
REALDATA data; /* offset value */宏值* 数值 的数组
} IODBZOR64; /* In case that the number of axes is MAX_AXIS, the number of data is 7 */
折戟沉沙 发表于 2023-7-19 11:31
typedef struct _RTL_PROCESS_MODULE_INFORMATION {
HANDLE Section; // Not filled in
PVOID MappedBase;
这种内嵌可变的,用字节集配合结构的S类型把.