递归火山软件开发平台

 找回密码
 立即注册
搜索
热搜: 火山 源码 类库
查看: 1503|回复: 5
打印 上一主题 下一主题

[其它] 这种回调如何封装

[复制链接]

283

主题

1987

帖子

7910

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7910
QQ
跳转到指定楼层
楼主
发表于 2025-7-21 21:31:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
问题如下:
在封装时碰到结构体中的成员类型,为回调。
这种如何封装呢?


  1. typedef struct FMOD_CREATESOUNDEXINFO
  2. {
  3. FMOD_SOUND_NONBLOCK_CALLBACK   nonblockcallback;
复制代码
  1. typedef FMOD_RESULT (F_CALL *FMOD_SOUND_NONBLOCK_CALLBACK)  (FMOD_SOUND *sound, FMOD_RESULT result);
复制代码


这样封装不对









24: 错误: 无法将数据类型"长整数"转换到"FMOD.音频.回调类型"


687e40e02e0b1.png (21.79 KB, 下载次数: 125)

687e40e02e0b1.png
火山视窗封装视频教程
回复

使用道具 举报

76

主题

1221

帖子

5511

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5511
沙发
发表于 2025-7-21 21:45:04 | 只看该作者
强转一下指针类型就行了吧
回复

使用道具 举报

283

主题

1987

帖子

7910

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7910
QQ
板凳
 楼主| 发表于 2025-7-21 22:15:15 | 只看该作者
hcwanz 发表于 2025-7-21 21:45
强转一下指针类型就行了吧

不行的,试过
火山视窗封装视频教程
回复

使用道具 举报

29

主题

2408

帖子

8592

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8592
地板
发表于 2025-7-21 22:19:47 | 只看该作者
1、封装成属性写,参数类型用变整数,方法里强转
2、封装成嵌入式方法,参数用@匹配方法
回复

使用道具 举报

283

主题

1987

帖子

7910

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7910
QQ
5#
 楼主| 发表于 2025-7-21 22:25:19 | 只看该作者
Xelloss0618 发表于 2025-7-21 22:19
1、封装成属性写,参数类型用变整数,方法里强转
2、封装成嵌入式方法,参数用@匹配方法 ...

能否给写个例子
火山视窗封装视频教程
回复

使用道具 举报

29

主题

2408

帖子

8592

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8592
6#
发表于 2025-7-21 22:58:42 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

类 FMOD_CREATESOUNDEXINFO <公开 @别名 = "FMOD_CREATESOUNDEXINFO" @别名类型 = 本地结构>
{
    方法 回调 <公开 静态 属性写>
    参数 本结构 <类型 = FMOD_CREATESOUNDEXINFO>
    参数 函数指针 <类型 = 变整数 注释 = "用\"取静态方法地址\"">
    {
        @ @<本结构>.nonblockcallback = (FMOD_SOUND_NONBLOCK_CALLBACK)@<函数指针>;
    }

    方法 置回调 <公开 静态 @嵌入式方法 = @"\"\"\"">
    参数 本结构 <类型 = FMOD_CREATESOUNDEXINFO>
    参数 回调函数 <@匹配方法 = "回调函数模板">
    {
        @ @<本结构>.nonblockcallback = &@<回调函数>
    }

    方法 回调函数模板 <静态 类型 = FMOD_RESULT @视窗.前缀文本 = "@F_CALL">
    参数 sound <类型 = FMOD_SOUND指针>
    参数 result <类型 = FMOD_SOUND指针>
    {
        变量 返回值 <类型 = FMOD_RESULT>
        返回 (返回值)
    }

    #
}

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-6 06:51 , Processed in 0.098305 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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