找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3499|回复: 7

[提问] 如何使用dll ?(以解決)

[复制链接]
发表于 2010-5-13 02:22:42 | 显示全部楼层 |阅读模式
是使用類似
global.dllgmww_window_create=external_define("GMWW.DLL","window_create",1,0,3,1,0,0);
這樣的語法來載入dll嗎?
发表于 2010-5-13 10:41:41 | 显示全部楼层
首先你要了解你的Dll里面是否带有你需要的函数,然后你需要初始化一次dll,比如你说的这句话,正确应该是

global.dllgmww_window_create = external_define(

  "GMWW.DLL",
   
  "window_create",
   
  dll_cdecl,
   
  ty_real,
   
  3,
   
   ty_real,
   
   ty_real,
   
  ty_real
   
  )


这是初始化dll的一句话,只需执行一次

接下来你要调用dll的时候,是使用

external_call(global.dllgmww_window_create , argument0 , argument1 , argument2)

其中 argument 则是你的那句话的最后3个数1,0,0
发表于 2010-5-13 10:41:50 | 显示全部楼层
对

另外 自己多试验喔~
发表于 2010-5-13 10:43:56 | 显示全部楼层
挖!吓咱一跳,突然出现啦..正在编辑呢
 楼主| 发表于 2010-5-13 18:26:58 | 显示全部楼层
這論壇有人可以解答  真感動...
另外在問一下
external_define(dll,name,calltype,restype,argnumb,arg1type,arg2type,

calltype的dll_cdel與dll_stdcall兩者有什麼差別呢?

restype的ty_real與ty_string是否意思著數字與字串?
发表于 2010-5-13 19:30:55 | 显示全部楼层
噢~这2个呀,因为gm是利用delphi语言编写的,所以他们俩其实是delphi语言里的参数,大概解释就是这样··这个嘛主要是为了兼容某些语言是倒着读取参数的数据而设定的~~所以你一般使用dll_cdecl,是不会有问题的,具体更详细的作用你可以去看看delphi语言。

ty_real與ty_string正如你所说,意思就是数字和字符串,但是你要注意一点! 可以返回的参数虽然有16个,但是如果超过4个的话,就只能使用ty_real~
 楼主| 发表于 2010-5-13 19:47:33 | 显示全部楼层
謝謝,了解了
发表于 2010-5-13 19:53:59 | 显示全部楼层
欢迎来玩~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-11-1 04:46 , Processed in 0.019800 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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