Oder man macht es wie MS und schreibt die Funktionen in beiden Varianten. In der
DLL:
Delphi-Quellcode:
function MyFuncA(SomeParam: PAnsiChar): DWORD; stdcall;
function MyFuncW(SomeParam: PWideChar): DWORD; stdcall;
exports
MyFuncA,
MyFuncW;
Auf Programmseite schreibt man sich dann eine Importunit, die die zur Delphi-Version passende Funktion lädt:
Delphi-Quellcode:
// Import der zum Delphi passenden Version
function MyFunc(SomeParam: PChar): DWORD;
stdcall;
external '
MyDLL.dll'
name {$IFDEF UNICODE} '
MyFuncW'
{$ELSE} '
MyFuncA'
{$ENDIF};
Zu beachten: hier muss dann aber auch zwingend der Typalias PChar verwendet werden, sonst ist das alles für die Füße.