火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[官方] 有关c++结构的封装示例:

[复制链接]

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
跳转到指定楼层
楼主
发表于 2023-7-18 17:24:06 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
下面的程序演示了如何定义封装C++结构,以及如何封装内嵌结构,及内嵌结构数组:

<火山程序 类型 = "通常" 版本 = 1 />

类 PROCESSENTRY32 <公开 @视窗.结构类 = 0>
{
    变量 dwSize <公开 类型 = 整数>
    变量 cntUsage <公开 类型 = 整数>
    变量 th32ProcessID <公开 类型 = 整数>
    变量 th32DefaultHeapID <公开 类型 = 变整数>
    变量 th32ModuleID <公开 类型 = 整数>
    变量 cntThreads <公开 类型 = 整数>
    变量 th32ParentProcessID <公开 类型 = 整数>
    变量 pcPriClassBase <公开 类型 = 整数>
    变量 dwFlags <公开 类型 = 整数>
    变量 szExeFile <公开 类型 = "短整数 [260]" 注释 = "如果是A版本API使用,此处需要将\"短整数\"改成\"字节\".">
    变量 ""
    变量 成员2 <公开 类型 = 结构2 注释 = "内嵌结构">
    变量 成员3 <公开 类型 = "结构2 [100]" 注释 = "内嵌结构数组">
}

类 结构2 <公开 @视窗.结构类 = 0>
{
    变量 dwSize <公开 类型 = 整数>
    变量 cntUsage <公开 类型 = 整数>
    变量 成员2 <公开 类型 = 结构3>
}

类 结构3 <公开 @视窗.结构类 = 0>
{
    变量 dwSize <公开 类型 = 整数>
    变量 cntUsage <公开 类型 = 整数>
}

回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
沙发
 楼主| 发表于 2023-7-19 16:36:59 | 显示全部楼层
折戟沉沙 发表于 2023-7-19 11:31
typedef struct _RTL_PROCESS_MODULE_INFORMATION {
HANDLE Section; // Not filled in
PVOID MappedBase;

这种内嵌可变的,用字节集配合结构的S类型把.
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
板凳
 楼主| 发表于 2023-7-19 16:37:33 | 显示全部楼层
dengzf 发表于 2023-7-19 13:43
火山的 @视窗.结构类 中不支持使用文本型, 如何处理? 用指针吗下面这种呢?
另外 下面这些如何在火山语法中 ...

一样封一个,配合编译条件使用.
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
地板
 楼主| 发表于 2023-7-19 17:56:43 | 显示全部楼层
dengzf 发表于 2023-7-19 17:10
视窗.结构体 中不支持 文本型与其它类型,, 这要如何搞法才好?, 易语言中结构支持文本型, 用起来简单 ...

文本型在结构类中使用变整数,传递文本数据时传递文本指针过去: 取文本指针 (文本数据)
下一版中会直接支持文本型
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
5#
 楼主| 发表于 2023-7-19 21:14:23 | 显示全部楼层
呵呵仙8 发表于 2023-7-19 18:47
的确应该有易语言的文本型结构,字节集结构,单精度小数。这样才能让易用户更好的转用火山。 ...

单精度小数使用"@视窗.单精度小数"属性定义一下对应成员即可
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
6#
 楼主| 发表于 2023-7-22 09:44:08 | 显示全部楼层
fengyishen 发表于 2023-7-22 03:05
吴总,请问这种结构体有办法用表格封装吗?

句柄和指针全用变整数,RECT用矩形类,DWORD和UINT用整数.
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
7#
 楼主| 发表于 2023-7-22 09:45:21 | 显示全部楼层
暴风 发表于 2023-7-22 08:35
这个结构能搞吗

这个里面包含动态数组类对象,只能嵌入解决.
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
8#
 楼主| 发表于 2023-7-22 17:00:49 | 显示全部楼层
fengyishen 发表于 2023-7-22 16:02
重点是想问嵌套的自定义结构构,嵌套的结构指针,这两个的写法

嵌套的自定义结构: 你定义一个对应的结构类,直接使用该结构类作为数据类型就行了,譬如"矩形类".
嵌套的自定义结构指针: 所有指针都是变整数
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
9#
 楼主| 发表于 2023-7-25 13:36:13 | 显示全部楼层
暴风 发表于 2023-7-25 13:10
看到更新了结构类, 现在是否支持

用第一种方式: 结构基础类
回复

使用道具 举报

54

主题

1353

帖子

7545

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7545
10#
 楼主| 发表于 2023-7-25 18:02:50 | 显示全部楼层
server 发表于 2023-7-25 16:27
变量 szExeFile

给个属性,自动跟随编译位数而变化呢??

现在都是用 W 版,A版本很少用了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 09:29 , Processed in 0.092543 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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