火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

39

主题

530

帖子

3725

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3725
楼主
发表于 2023-7-19 13:43:40 | 显示全部楼层
本帖最后由 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[MAX_SPINDLE];        /* 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[MAX_AXIS*8];   /* offset value */  宏值* 数值 的数组
} IODBZOR64; /* In case that the number of axes is MAX_AXIS, the number of data is 7 */


64b790b222e2e. (0 Bytes, 下载次数: 0)

64b790b222e2e.
回复

使用道具 举报

39

主题

530

帖子

3725

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3725
沙发
发表于 2023-7-19 17:10:33 | 显示全部楼层
飞扬工作室 发表于 2023-7-19 16:37
一样封一个,配合编译条件使用.

视窗.结构体 中不支持 文本型与其它类型,, 这要如何搞法才好?, 易语言中结构支持文本型, 用起来简单
回复

使用道具 举报

39

主题

530

帖子

3725

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

确实如此
回复

使用道具 举报

39

主题

530

帖子

3725

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3725
地板
发表于 2023-7-19 22:07:41 | 显示全部楼层
本帖最后由 dengzf 于 2023-7-19 22:18 编辑
飞扬工作室 发表于 2023-7-19 21:14
单精度小数使用"@视窗.单精度小数"属性定义一下对应成员即可

结构体中也不支持这种 模板数组类  自定义与基本数组类都不支持,  上面发的结构体中的不明确个数的数组[]
可以用c++代码将对应 数组[?] 的值 用加入成员到 模板数组类接收到火山的表格中来,这样比生成多个类同的结构体要省事

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

类 REALDATA <公开 注释 = "" @视窗.结构类 = 0>
{
    变量 val <公开 类型 = 小数 注释 = " data value" @输出名 = "val">
    变量 dec <公开 类型 = 长整数 注释 = " decimal point" @输出名 = "dec">
    变量 dummy <公开 类型 = 长整数 注释 = "" @输出名 = "dummy">
}

类 REALDATA数组类 <公开 基础类 = 对象数组模板类 @模板实现类 = "REALDATA">

#

类 IDBWRA64 <公开 注释 = " /* cnc_prstwkcd64:preset work coordinate */" @视窗.结构类 = 0>
{
    变量 datano <公开 类型 = 小数 注释 = " dummy" @输出名 = "datano">
    变量 type <公开 类型 = 长整数 注释 = " axis number" @输出名 = "type">
    变量 dummy <公开 类型 = 长整数 注释 = " dummy2" @输出名 = "dummy">
    变量 data <公开 类型 = REALDATA数组类 注释 = "preset data  MAX_AXIS 数组维数 4 32 48 72 96" @输出名 = "data">
}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 11:11 , Processed in 0.089423 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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