我正在研究win7和delphi 2010.这是我的代码。
library CFGFunc;
uses
sysUtils
Un_ExFuncDll in "base\Un_ExFuncDll.pas"
...
exports
LoadExFuncsInDLL,
...
和Un_ExFuncDll.pas在这里
unit Un_ExFuncDll;
interface
uses
Classes;
procedure LoadexfuncsIndll(); stdcall;
...
编译后,dll不起作用。但是我用LoadexfuncsIndll()
替换了
LoadExFuncsInDLL()
中Un_ExFuncDll.pas
(完全匹配导出中的内容)。然后它工作了。
Delphi 不区分大小写。但似乎dll中的导出区分大小写。 那么,与他们的交易是什么?
答案 0 :(得分:11)
导入/导出DLL函数 IS 区分大小写,并且一直都是。该行为与操作系统DLL加载程序绑定,后者区分大小写。这是Delphi语言中区分大小写的唯一区域之一。这是记录在案的行为,至少部分是:
Writing Dynamically Loaded Libraries
名称说明符由指令名称后跟字符串常量组成。如果条目没有名称说明符,则例程将以其原始声明的名称以相同的拼写和大小写导出。如果要以其他名称导出例程,请使用名称子句。
Procedures and Functions (Delphi)
在导入声明中,请确保与例程的确切拼写和大小写相匹配。稍后,当您调用导入的例程时,该名称不区分大小写。