[ILINK32 Fehler] Error: Nicht auflösbares externes '__fastcall System::UnicodeString::LoadStringA(void *, int)' ref...?



  • Moin 2gether,

    [ILINK32 Fehler] Error: Nicht auflösbares externes '__fastcall System::UnicodeString::LoadStringA(void *, int)' referenziert von ... 😕

    Was soll / will mir dieser Linkerfehler sagen?

    HINSTANCE         _LangDLLHandle;       // Handle auf die akt. SprachDLL
    ...
    _LangDLLHandle = LoadLibrary(GetLibraryName(LangID));  //GetLibraryName(LangID) liefert Namen der jew. SprachDLL
    ...
    HelpStr.LoadString(_LangDLLHandle, Value->Tag);
    

    Kurzform.

    Irgendwas fehlt. Nur was? Habe auch #include <ustring.h> drin, ausserdem verwende ich UnicodeStrings quer durch die ganze App?!

    Was könnte das sein?

    thx & grüssle 🙂



  • und so?

    HelpStr.LoadString((HINSTANCE)_LangDLLHandle, Value->Tag);



  • kpeter schrieb:

    und so?

    HelpStr.LoadString((HINSTANCE)_LangDLLHandle, Value->Tag);

    leider nein, auch schon probiert. Da will einfach nix funktionieren 😡

    Wäre auch kein Problem, solange die Fremdsprachen im ANSI Bereich blieben. Dann gehts mit char und int LoadString( HINSTANCE hInstance, UINT uID, LPTSTR lpBuffer, int nBufferMax );
    Aber bei kyrillisch gehts schon los 😞

    grüssle 🙂



  • Um welche DLL handelt es sich? Würde versuchen, den Code nachzuvollziehen.



  • kpeter schrieb:

    Um welche DLL handelt es sich? Würde versuchen, den Code nachzuvollziehen.

    STRINGTABLES. Selbst gefrickelt. Funktionieren auch wunderbar, z. B. für Deutsch, Englisch, Spanisch, Französich, ... Also alles, was in char passt.
    Aber Kyrillisch kann ich nicht mehr in char packen. Kommen nur noch "?????" Strings raus.

    grüssle 🙂



  • Musste wirklich noch keiner UnicodeStrings aus einer DLL holen?
    Habe mittlerweile einen Schritt nach vorne gemacht.
    Beim brcc32 muss die Codepage angegeben werden, also bei Russisch -c1251.
    Trotdem muss danach der Text in einen UnicodeString gepackt werden, und zwar ohne Umwege. Und hier scheiterts. nur ?!*) 😡

    Aus "Файл" wird "Файл"". Es ist zum auswachsen!

    Any ideas?

    grüssle 🙂



  • Einstellung in Project/Optionen/C++Compiler/Verzeichnisse und Bedingungen die Bedingungen nach STRICT.

    Damit ist zumindest der Error weg.

    Edit Pfad ergänzt



  • S T R I C T 😡
    war aber nicht alles :p

    brcc32 ist hier nutzlos. Wenn man das ganze aber mit:

    cgrc -c1251 -filename
    

    behandelt, läuft alles wunderbar.

    1000 thx, kpeter

    grüssle 🙂



  • Smitty schrieb:

    cgrc -c1251 -filename
    

    Für alle Interessierten:http://edn.embarcadero.com/jp/article/38487

    mfg
    kpeter


Anmelden zum Antworten