Entwickler-Ecke

Windows API - Microsoft Layer for UniCode


MS - So 20.04.03 14:10
Titel: Microsoft Layer for UniCode
Ich möchte die LabView DLL gpib-32.dll in meine Delphi Anwendung mit LoadLibrary einbinden. Das funktioniert aber nicht auf einer Win98 Maschine (auf Win2k ohne Probleme). Ich brauche für Win95/Win98/WinME wohl den Microsoft Layer for Unicode mit der DLL UnicoWS.dll.

Welche DLLs muß ich nun in welcher Reihenfolge mit LoadLibrary einbinden, bevor ich gpib-32.dll laden kann? Ich habe die folgende Reihenfolge von LoadLibrary Befehlen probiert (wie in der API reference empfohlen): kernel32.dll, advapi32.dll, user32.dll,..., UnicoWS.dll, kernel32.dll, advapi32.dll, user32.dll, ... Trotzdem schlägt LoadLibrary('gpib-32.dll') fehl.

Kann mir jemand weiterhelfen? Z.B.: Wie läßt sich /nod aus C nach Delphi übertragen?

Moderiert von user profile iconTino: Überflüssige Absätze entfernt.


Delete - So 20.04.03 14:18

Das dürfte schwer werden. Windows 9x unterstützt UNI-Code nur sehr rudimentär bis überhaupt nicht.


Bernhard Geyer - So 27.04.03 14:52

Die datei gpib-32.dll muß die UnicowWS.dll laden können. Dazu reicht es aus das diese Datei im gleichen Verzeichnis liegt (Keine Installation nötig).

Sie kann unter http://www.microsoft.com/downloads/details.aspx?FamilyID=73ba7bd7-ed06-4f0d-80a4-2a7eeaee17e2&DisplayLang=en heruntergeladen werden (Suche unter http://www.microsoft.com/downloads/search.aspx?displaylang=en nach "Unicode Win95").

Diese Datei mach eigentlich nur folgenden Pseudocode für jede Funktion aus:

Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure DoSomeThingW
begin
  if IsW95_98_ME then
    SystemDLL.DoSomeThingA
  else
    SystemDLL.DoSomeThingW
end;

Dabei werden noch alle Wide-(Widestring)Übergabeparameter unter Win9x/ME nach Ansistrings umgewandelt und dabei die aktuelle Codepage des Prozesses verwendet.

Moderiert von user profile iconTino: Code-Tags hinzugefügt.