|
主题: 自定义函数名于系统函数同名
|
颠狗
职务:普通成员
等级:1
金币:0.0
发贴:83
|
#12001/8/21 22:32:53
调用API的ShowWindow函数时,出现于AW内部函数showwindow同名的情况,怎么解决
|
与人同乐
职务:管理员
等级:6
金币:18.0
发贴:3928
|
#22001/8/23 19:55:01
这个问题我也遇到过,即使选择覆盖或改名也不行。
后来自己作了一个DLL,在里面调用showwindow。
|
燕云
职务:普通成员
等级:2
金币:10.0
发贴:600
|
#32001/8/25 1:46:47
Y兄,也写函数。真心向你请教相关规范! skcyh@163.com
云网媒体【YZCNET.COM】云网媒体开展软件技术、互联网技术、电子商务技术、多媒体设计等服务; 其中包括 :软件开发、网站建设、手机服务、多媒体设计、 图片及演示文稿服务等;
|
与人同乐
职务:管理员
等级:6
金币:18.0
发贴:3928
|
#42001/8/25 17:15:47
U32其实就是DLL,只是在资源描述文件中多了一些函数描述信息:包括动态链接库中的函数目录、参数类型、返回值类型以及说明性文字等等,具体格式如下:
函数目录格式 1 DLL_HEADER LOADONCALL DISCARDABLE BEGIN "functionname1[=exportname1]\0", "functionname2[=exportname2]\0", …… "functionnameN[=exportnameN]\0", "\0" END 其中第一行表示下面的内容是函数目录,BEGIN和END之间为目录内容:functionname1到functionnameN为动态链接库中包含的函数名称。
函数描述 functionname DLL_HEADER LOADONCALL DISCARDABLE BEGIN "FileName\0", "returnvalue\0", "argumentList\0", "description\r\n" "description\0" END 其中functionname为出现在函数目录中的函数名;Filename表示存贮函数的动态链接库文件名;returnvalue描述函数的返回值类型,argumentList描述函数的参数类型列表;description为对函数的说明性文字,说明性文字可以有多行,行与行之间用"\r\n"分隔,最后一行末尾必须加上"\0"。
在MAKE之后,将生成的DLL扩展名改变为U32就行了。(其实不改也行)
可以找本《Authorware教程》(电子工业出版社)看一下,里面有详细的描述和例子,包括数据类型描述格式、AW与Windows参数类型转换、返回值类型转换等等规则。上面的内容就是从里面摘录的。
自AW 5出了之后就很少自编DLL了。原来编DLL的目的是因为许多API要求传递缓冲区指针,而AW没有,但利用AW 5提供的MEMTOOLS.U32就可以开辟缓冲区和传递缓冲区指针,以及从缓冲区中取得各种类型的返回值。
编辑历史:[这消息被Y编辑过(编辑时间2001-08-25 17:38:25)] [这消息被Y编辑过(编辑时间2001-08-27 15:22:53)]
|
颠狗
职务:普通成员
等级:1
金币:0.0
发贴:83
|
#52001/8/26 11:02:44
Y,我想直接引用dll中的函数,showwindow在哪个dll中?可以举个转换的例子吗? 或者你告诉我,如何控制窗口最小化
|
与人同乐
职务:管理员
等级:6
金币:18.0
发贴:3928
|
#62001/8/27 8:02:41
如果仅控制窗口最小化,用winapi.u32中的 ShowWindowAsync(WindowHandle, 2)
|
颠狗
职务:普通成员
等级:1
金币:0.0
发贴:83
|
#72001/8/27 12:06:39
Y,,,,,你为何不把问题说得严重些,害我¥……%¥……%※※
谢谢指点
|
颠狗
职务:普通成员
等级:1
金币:0.0
发贴:83
|
#82001/9/7 20:57:49
很有意思,偶尔用了某个汉化版,结果winapi的showwindow可以通过,也可以正常打包。 仔细一看,原来是该版汉化时将系统函数名都改成中文了,所以也就没了同名冲突。呵呵变态,,, 我再用AW3,也通过。(因为AW3还没有showwindow函数)。看来是AW编辑器的BUG。
看来类似情况可以先用低版本AW导入函数,再转换成高版本打包
|