InstallSite Forum


  Reply to this topicStart new topicStart Poll

> InstallScript & Unicode
Thomas Hübner
Posted: 2010-07-30 10:40
Quote Post





Group: Full Members
Posts: 21
Member No.: 15423
Joined: 2009-06-23



Hallo,

Ich habe mal wieder eine Frage: Ich verwende in meinen Basic MSI Projekt InstallScript Funktionen.

Unter anderen verwende ich die Funktionen MsiGetProperty und MsiSetProperty um lokalisierte String an eine Deferred CA zu übergeben. Diese werden per MsiProcessMessage an den Installer gesendet, damit die Progressbar und der dazugehörige ActionText bei einen längeren Prozess (Installation einer externen Datenbank) aktualisiert wird.

Das ganze hat bisher gut geklappt, bis wir zusätzliche Sprachen (chinesisch) hinzugefügt haben. Die Funktion MsiGetProperty scheint intern nur die zugehörige ANSI Funktion MsiGetPropertyA aufzurufen. Und somit werden dann bei chinesisch nur "???" angezeigt.

Wenn ich versuche MsiGetPropertyW zu definieren
CODE

prototype int msi.MsiGetPropertyW(HWND,
byval STRING, // property identifier, case-sensitive
byref STRING, // buffer for returned property value
byref int);    // in/out buffer character count

und dann aufrufe, bekomme ich den Wert 6 (ERROR_INVALID_HANDLE) zurück. Das gleiche passiert, wenn ich MsiGetPropertyA aufrufe, nur bei direktem Aufruf von MsiGetProperty bekomme ich einen Wert zurück, aber eben die "????", da die ANSI Funktion verwendet wird.

Ein Ausweg wäre, die ganze CA in C oder C++ zu implementieren und dort direkt die Unicode-Funktionen zu verwenden, aber meine C Kenntnisse sind dafür nicht so umfangreich. Eine andere Alternative wäre VBScript zu verwenden, dort wirt mit Session.Property(....) die Unicode-Funktion verwendet. Aber das ist meiner Meinung nach ein Schritt rückwärts.

Gibt es irgendwie eine Möglichkeit, Unicode-Funktionen aus InstallScript heraus zu verwenden? Letztendlich wird ja auch hier eine DLL generiert. Aber die scheint irgendwie mit ANSI Compileroptionen erzeugt wurden zu sein. Hat man auf diesen Prozess Einfluß?

Vielen Dank für Eure Hilfe und viele Grüße
Thomas Hübner
PMEmail Poster
Top

InstallShield & AdminStudio Training

Kurse in deutscher Sprache hier.

Courses in English, French and Italian language here.


« Next Oldest | InstallShield "Basic MSI" Projekte | Next Newest »

Topic Options Reply to this topicStart new topicStart Poll