上面声明了一个函数类型,GetLanguageWord : function(index : integer) : PWideChar; stdcall;这就是在动态调用dll时用的
@GetLanguageWord := GetProcAddress(g_hDLL, 'GetLanguageWord');这就是返回g_hDLL所指向的dll文件中的GetLanguageWord函数
后面就看此函数是@GetLanguageWord <>nil,这样就可以调用此dll中的函数了
@GetLanguageWord := GetProcAddress(g_hDLL, 'GetLanguageWord');这就是返回g_hDLL所指向的dll文件中的GetLanguageWord函数
后面就看此函数是@GetLanguageWord <>nil,这样就可以调用此dll中的函数了
解决方案 »
- 条件判断SQL怎么写
- 求助!!在ADOQurey组件中把SELECT检索到的结果怎样传到DBEdit中?
- myling(阿德) 关于《NeHe的opengl框架delphi版》
- 朋友们,我这里有Delphi控制autocad的OLE特性、方法等操作手册,谁要?
- adotable和adoquery的问题,简单,高分(先答多得,答者有份)!!!
- 1stclass3000 Delphi5 的密码或修改fctext.duc文件后5分钟自动关机问题。
- 有点难度的问题。有兴趣请进
- 如何进行注册表CreateKey.请帮忙!(20分)
- 编译错误,此工程包括15个窗体。如何优化,请指点。来自现场。
- 关于指针移动的问题
- 这句话那里错了呀?为什么执行不了?
- 關于InterBase數据庫的問題
GetLanguageWord : function(index : integer) : PWideChar; stdcall;
// 聲明GetLanguageWord是一個函數@GetLanguageWord := GetProcAddress(g_hDLL, 'GetLanguageWord');
// 取得函數GetLanguageWord的地址,
地址是從 g_hDLL 指向的這個DLL文件中取得的
声明了一个函数类型?
它是写在var 后面的,就是说以一个变量的形式出现的。这和把function写在前面有什么不一样,这样用有什么好处。
谢谢了。
或者是靜態與 DLL 文件相聯把 GetLanguageWord 作為一個變量,就可以動態與 DLL 文件中的 函數相聯
你可以在這個地方與 file1.dll 中的 GetLanguageWord 函數相聯
在另一個地方與 file2.dll 中的 GetLanguageWord 函數相聯
對
如果把function写在前面,就是说不把GetLanguageWord当个变量来声明,是不是一样的效果呢? 如果你用不到動態,那麼郊果是一樣的
動態關聯好處;
1. 減少資源(隻有使用時才打開dll文件,使用完畢後就關閉,減少資源浪費)
2. 靈活,
在沒使用到時,你可以不用知道這個dll文件名是什麼.
在使用時,你可以隨時更換dll文件,許多的 skin 都是採用這種方法來做的
以前对dll调用只用静态的. 菜鸟就是菜鸟,这部分书没有细看,感谢各位了,给分了.
//定义函数类型
Type
TGetLanguageWord = function(index : integer) : PWideChar; stdcall;//定义此函数类型的变量
Var
GetLanguageWord : TGetLanguageWord;//GetProcAddress是取DLL中名为'GetLanguageWord'的函数地址
@GetLanguageWord := GetProcAddress(g_hDLL, 'GetLanguageWord');