主题:  请教各位高手(API问题)

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#12002/5/11 10:32:02
AW支持WIN API函数,可是有的API函数有独特的数据结构类型,而AW支持的数据结构类型却有限(这也是为什么会有这么多的API扩展函数U32的出现),AW有没有办法自己构造数据类型?显得异想天开了点。。呵呵。。请赐教!



与人同乐

职务:管理员
等级:6
金币:18.0
发贴:3928
#22002/5/11 12:11:41
用memtools.u32吧。结构无非是一组空间罢了,自己定义每个字的含义就行了。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#32002/5/11 12:23:56
OK,Let me try!!



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#42002/5/11 13:44:09
以下内容出自《Authorware 5.1开发实例与技巧》一书的附录,由作者袁海东翻译

Memtools中的外部函数说明

AllocHandle

语法:handle:=AllocHandle(size)

说明:分配一块指定大小的全局内存并返回内存句柄,该块内存中所有的字节被初始化为0,参数size必须大于或等于0。当分配请求失效时,该函数返回0。

AllocMem

语法:pointer := AllocMem(size)

说明:分配一块指定大小的内存并返回指向内存的指针,该块内存中所有的字节被初始化为0,参数size必须大于或等于0。当分配请求失效时,该函数返回0。

FreeHandle

语法:ok := FreeHandle(handle)

说明:释放由函数AllocHandle()分配的全局内存,参数handle是该内存块的句柄。成功释放,则返回TRUE,否则返回FALSE。

注意:如果参数handle 不是一个有效的全局内存句柄,该函数执行将导致不可预料的后果。

FreeMem

语法:ok := FreeMem(pointer)

说明:释放由函数AllocMem()分配的内存,参数pointer是指向内存块的指针。成功释放,则返回TRUE,否则返回FALSE。

注意:如果参数pointer不是一个有效的内存指针,该函数执行将导致不可预料的后果。

LockHandle

语法:pointer := LockHandle(handle)

说明:锁定全局内存句柄并返回内存对象的第一字节的地址,参数handle必须是函数AllocHandle()生成的全局内存句柄。在使用全局内存前必须将它锁定,锁定失败,该函数返回0。

PeekByte

语法:result := PeekByte(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个字节型数值。

PeekDouble

语法:result := PeekDouble(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个双精度浮点数。

PeekFloat

语法:result := PeekFloat(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个浮点型数值。

PeekLong

语法:result := PeekLong(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个长整型数值。

PeekShort

语法:result := PeekShort(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个整型数值。

PeekString

语法:result := PeekString(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个字符串,该字符串必须以0结尾。

PeekUByte

语法:result := PeekUByte(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个无符号字节型数值。

PeekULong

语法:result := PeekULong(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个无符号长整型数值。

PeekUShort

语法:result := PeekUShort(ptr,offset)

说明:从指针 ptr 指定的内存块中的偏移量offset 处返回一个无符号整型数值。

PokeByte

语法:PokeByte(ptr,offset,value)

说明:在指针 ptr 指定的内存块中的偏移量offset 处写入一个字节型数值。

PokeDouble

语法:PokeDouble(ptr,offset,value)

说明:在指针 ptr 指定的内存块中的偏移量offset 处写入一个双精度浮点型数。

PokeFloat

语法:PokeFloat(ptr,offset,value)

说明:在指针 ptr 指定的内存块中的偏移量offset 处写入一个浮点型数值。

Pokestring

语法:PokeString(ptr,offset,value)

说明:在指针 ptr 指定的内存块中的偏移量offset 处写入一个字符串。

PokeULong

语法:PokeULong(ptr,offset,value)

说明:在指针 ptr 指定的内存块中的偏移量offset 处写入一个无符号长整型数值。

PokeUshort

语法:PokeUShort(ptr,offset,value)

说明:在指针 ptr 指定的内存块中的偏移量offset 处写入一个无符号整型数值。

UnlockHandle

语法:UnlockHandle(handle)

说明:解锁由函数LockHandle()锁定的全局内存句柄。

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-11 23:42:14)]


与人同乐

职务:管理员
等级:6
金币:18.0
发贴:3928
#52002/5/11 20:52:40
以上内容应该是出自《Authorware 5.1开发实例与技巧》一书的附录,由作者袁海东翻译的。

引用了别人的东西总要标上出处吧。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#62002/5/11 23:41:27
Y,我是从网络上COPY过来的,那个地方也没有注明出处,呵呵。
尊重别人的劳动是应该提倡的,我修改一下把出处也补上吧,你确定没错吧?