| InstallSite · E-mail and password recovery note · Contact |
Help
Search
Members
Calendar
|
| Welcome Guest ( Log In | Register ) | Resend Validation Email |
![]() ![]() ![]() |
| Thomas Hübner |
Posted: 2010-07-30 10:40
|
||
|
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
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 |
||
![]() |
![]() ![]() ![]() |