Ich schreibe eine DLL in Delphi XE8, um von einer in Delphi XE8 geschriebenen App verwendet zu werden.Delphi DLL Case Sensitivity
Meine DLL sieht so aus.
function GetInt : Integer; stdcall;
begin
Result := 300;
end;
exports GetInt;
Meine App sieht so aus.
dllHandle := LoadLibrary(PChar('myDLL.dll'));
ShowMessage(SysErrorMessage(GetLastError));
if dllHandle <> 0 then
begin
@GetInt := GetProcAddress(dllHandle, 'GetInt');
ShowMessage(SysErrorMessage(GetLastError));
if Assigned(GetInt) then
ShowMessage(IntToStr(GetInt))
else
ShowMessage('Nope');
end;
Ich bekomme einen Fehler "spezifizierte Prozedur konnte nicht gefunden werden". Also ändere ich meine exports-Anweisung und meine @GetInt-Anweisung von "G etInt" nach "g etInt". Jetzt ist alles in Ordnung.
So jetzt meine Frage: Warum muss meine DLL-Funktion und Export das gleiche Wort mit unterschiedlicher Groß-/Kleinschreibung sein?
'GetProcAddress' ** ist ** in der Tat Groß-und Kleinschreibung. Ihr Code sieht korrekt aus. Ich schlage vor, Sie untersuchen Export-Verzeichnis des Bildes (mit z. B. "tdump") –
Kann nicht mit dem vorgestellten Code reproduzieren. –
Das ist nie ein gutes Zeichen. – Paul