这种回调如何封装
问题如下:在封装时碰到结构体中的成员类型,为回调。
这种如何封装呢?
static/image/hrline/1.gif
typedef struct FMOD_CREATESOUNDEXINFO
{
FMOD_SOUND_NONBLOCK_CALLBACK nonblockcallback;typedef FMOD_RESULT (F_CALL *FMOD_SOUND_NONBLOCK_CALLBACK)(FMOD_SOUND *sound, FMOD_RESULT result);
static/image/hrline/1.gif
这样封装不对
static/image/hrline/1.gif
24: 错误: 无法将数据类型"长整数"转换到"FMOD.音频.回调类型"
强转一下指针类型就行了吧 hcwanz 发表于 2025-7-21 21:45
强转一下指针类型就行了吧
不行的,试过 1、封装成属性写,参数类型用变整数,方法里强转
2、封装成嵌入式方法,参数用@匹配方法 Xelloss0618 发表于 2025-7-21 22:19
1、封装成属性写,参数类型用变整数,方法里强转
2、封装成嵌入式方法,参数用@匹配方法 ...
能否给写个例子 <火山程序 类型 = "通常" 版本 = 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>
返回 (返回值)
}
#
}
页:
[1]