star-o-0 发表于 2010-5-13 02:22:42

如何使用dll ?(以解決)

是使用類似
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

franniss 发表于 2010-5-13 10:41:50



另外 自己多试验喔~

埃兰蒂菲丝 发表于 2010-5-13 10:43:56

挖!吓咱一跳,突然出现啦..正在编辑呢

star-o-0 发表于 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~

star-o-0 发表于 2010-5-13 19:47:33

謝謝,了解了

埃兰蒂菲丝 发表于 2010-5-13 19:53:59

欢迎来玩~
页: [1]
查看完整版本: 如何使用dll ?(以解決)