dll中的导出是否敏感?

cha*_*gyu 3 windows delphi dll case-sensitive

我正在研究win7和delphi 2010.这是我的代码.

library CFGFunc;

uses
sysUtils
Un_ExFuncDll in "base\Un_ExFuncDll.pas"
...

exports
LoadExFuncsInDLL,
...
Run Code Online (Sandbox Code Playgroud)

和Un_ExFuncDll.pas在这里

unit Un_ExFuncDll;
interface    
uses
  Classes;
  procedure LoadexfuncsIndll(); stdcall;
  ...
Run Code Online (Sandbox Code Playgroud)

编译后,该DLL不起作用.但是我LoadexfuncsIndll()LoadExFuncsInDLL()(完全匹配出口中的东西)代替了 Un_ExFuncDll.pas.然后它工作了.

Delphi 不区分大小写.但似乎dll中的导出区分大小写.那么,与他们的交易是什么?

Rem*_*eau 11

导入/导出的DLL函数IS区分大小写的,而且一直都是.该行为与操作系统DLL加载程序绑定,后者区分大小写.这是Delphi语言中区分大小写的唯一区域之一.这是记录在案的行为,至少部分是:

编写动态加载的库

一个符由指令的名字,然后一个字符串常量.如果条目没有名称说明符,则例程将以其原始声明的名称导出,具有相同的拼写和大小写.如果要以其他名称导出例程,请使用name子句.

程序和功能(德尔福)

在导入声明中,请确保匹配例程名称的确切拼写和大小写.稍后,当您调用导入的例程时,该名称不区分大小写.

  • OT:我会说程序[`Register`](http://docwiki.embarcadero.com/RADStudio/XE5/en/Declaring_the_Register_Procedure)可能是Delphi中最后一个区分大小写的东西. (2认同)