Español
Foro

Textos de DLL auslesen

 

Stephan
Sonneborn
¡Hola,
en el LEER32.DLL Yo testweise con el ResourceBuilder zwei Cuerdas eingefügt:

una vez en la lengua Alemán $0407 o. 1031:

y una vez en la lengua Inglés $0809 o. 2057:

El DLL Yo encima USEDLL eingebunden.
Den Texto weise Yo así a:
DE_Text$ = RES("GetStrings", PRGDLL&, 100, $00407)
EN_Text$ = RES("GetStrings", PRGDLL&, 100, $00809)

Aber Yo bekomme el Fehlermeldung "String-Ressource No se ha encontrado: #100".

Was es falso?
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
28.09.2020  
 




Georg
Teles
Bueno Tag,

como sieht el Leer32.DLL con el Ressource Hacker de, etwa así ?



Dann müsstest Usted el 100 en Anführungszeichen conjunto, also
DE_Text$ = RES("GetStrings", PRGDLL&, "100", $00407)
EN_Text$ = RES("GetStrings", PRGDLL&, "100", $00809)

el 3.te Parámetro es entweder el Nummer des Stringes, beginnend con 1 oder el Name, also en el Fall "100"

Yo vermute, du müsstest "100" eingeben oder sólo 1 como ersten String en el Ressource, entonces debería lo ir.

Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

28.09.2020  
 




Stephan
Sonneborn
Yo bearbeite el DLL eigentlich siempre con el Resource Builder. Como sieht el
entonces así de:



Wenn Yo el Bespiel de el Ayuda eingebe y luego el así erstellte Leer32.dll con el Resource Builder bearbeite, kommt una Fehlermeldung:



Mit el ResHacker siehts así de:



Gebe Yo entonces "7" como dritten Parámetro a, se ejecuta des Programa más, liest aber "6" como Valor o. Texto una, el así nada en el DLL auftaucht.

El XProfan-Fehlermeldung es de paso auch en "100" como dritten Parámetro dieselbe.

Bisher Yo siempre el komplette DLL (je Lingua una DLL) ausgetauscht y ExtString$() gearbeitet. Puesto que hay uno genau el Nummer en el DLL (also hier el 100) a. Aber desafortunadamente eben sin Unterscheidung en Lingua.

39 kB
Hochgeladen:28.09.2020
Ladeanzahl29
Descargar
16 kB
Hochgeladen:28.09.2020
Ladeanzahl31
Descargar
23 kB
Hochgeladen:28.09.2020
Ladeanzahl35
Descargar
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
28.09.2020  
 



Hi,

Yo glaube como nadie Rautezeichen "#100" -

"Aktualisierte XProfan X4 - Hilfedatei (*.chm)" bajo "23 - Ressourcen":



(veces el Hilfedatei durchstöbern, qué Roland zwischenzeitlich así alles instalado ha...)

 
28.09.2020  
 




Stephan
Sonneborn
Leider hilft una "#100" auch no...

Hier veces el bisherige Quellcode:
'*******************************************************************************************************'
'* Programa: Vokabeltrainer                                                                            *'
''******************************************************************************************************'
'* Versión: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Vokabeltrainer                                                                             *'
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Klassendefinition                                                                                   *'
'*******************************************************************************************************'
CLASS Vokabel = Wort$(21), \
Uebersetzung$(21), \
Genus$(2), \
Casus$(13), \
Numerus$(11), \
Verb1$(21), \
Verb22$(21), \
Verb3$(21), \
Lektion$(13)', \
' Anlegen&, \
' Importieren@, \
' Exportieren@, \
' Vorlesen@
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendeklaration                                                                                *'
'*******************************************************************************************************'
'*- Programa -*'
DECLARE PRGDLL&
DECLARE PrgName$
DECLARE x!, xx!, y!, yy!
'*******************************************************************************************************'
'*- Diálogo -*'
DECLARE DlgText&[5,30], DlgText$[5,30]
DECLARE DlgEdit&[5,30]
DECLARE ToolBar&, ToolbarIcons&   , TabControl&[5]
'*******************************************************************************************************'
'*- Vobaln -*'
DECLARE Begriff#
DECLARE String Textos[]
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendimensionierung                                                                            *'
'*******************************************************************************************************'
DIM Begriff#, Vokabel
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Wertzuweisungen                                                                                     *'
'*******************************************************************************************************'
PRGDLL&       = USEDLL("Vokabeln_32.DLL")
'PRGName$      = RES("GetStrings", PRGDLL&, "#100", $00407)
PRGName$      = EXTSTRING$(PRGDLL&, 100)
ToolbarIcons& = 0'Hier später Toolbaricon eintragen
'*******************************************************************************************************'
'*- Skalierung *'
xx! = 1.30
yy! = 1.15
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Prozedurname: MainWindow                                                                            *'
''******************************************************************************************************'
'* Versión: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Baut la ventana principal/-dialog en                                                          *'
'*******************************************************************************************************'

PROC MainWindow

    '*******************************************************************************************************'
    '*- Lokale Parámetro -*'
    DECLARE Handle&
    DECLARE Tab&[5]
    DECLARE dx%, dy%
    DECLARE i%
    DECLARE Ende%
    '*******************************************************************************************************'
    '*- Wertzuweisungen -*'
    x!    = 1.00
    y!    = 1.00
    dX%   = 640
    dy%   = 480
    Ende% = 0
    '*******************************************************************************************************'
    '*- Fensteraufbau -*'
    Handle& = CREATE("Dialog", %HWND, PrgName$, 0,0,0,0)
    SETWINDOWPOS Handle& = INT((%MAXX-dx%)/2)*x!,INT((%MAXY-dy%)/2)*y! - dx%*x!, dy%*y!; 0
    Toolbar&       = CREATE("Toolbar", Handle&, ToolbarIcons&, 0, 0, WIDTH(Handle&), 64*y!)
    TabControl&[1] = CREATE("TabCtrl", Handle&, "Vokabel", 5*x!, HEIGHT(Toolbar&) + 5*x!, WIDTH(Handle&) - 2 * 5*x!, HEIGHT(Handle&) - Height(Toolbar&)-2* 5*x!   )
    FOR i%, 2,5,1
    TabControl&[i%] = INSERTTAB(TabControl&[1], i%,"Tab "+ STR$(i%) )
    ENDFOR
    '*******************************************************************************************************'
    '*- Ereignishandler -*'

    WHILENOT Ende%

        WAITINPUT
        Ende%=1

    ENDWHILE

    '*******************************************************************************************************'
    '*- Ventana schließen -*'
    DESTROYWINDOW(Handle&)
    '*******************************************************************************************************'

ENDPROC

'*******************************************************************************************************'
'*******************************************************************************************************'
'* Hauptprogramm                                                                                       *'
''******************************************************************************************************'
CLS
Mainwindow
DISPOSE Begriff#
FREEDLL PRGDLL&
FIN

y el zugehörige DLL.

8 kB
Hochgeladen:28.09.2020
Ladeanzahl40
Descargar
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
28.09.2020  
 




H.Brill
Mach doch alles con Rolands eingebauten Características.
Declarar cadena Vokabeln[]
cls
var cadena DE[] = "Erster", "Zweiter", "Dritter"
var cadena EN[] = "First", "Second", "Third"
/*
res("addstrings", "E:/Vokabeln.dll", "Vokabeln", 1031, DE[])
res("addstrings", "E:/Vokabeln.dll", "Vokabeln", 2057, EN[])
*/
var handle hDLL = UseDLL("E:/Vokabeln.dll")
Vokabeln[] = res("GetStrings", hDLL, "Vokabeln", 1031)

WhileLoop 0, sizeOf(Vokabeln[]) - 1

    Imprimir Vokabeln[&bucle]

EndWhile

Imprimir
Vokabeln[] = res("GetStrings", hDLL, "Vokabeln", 2057)

WhileLoop 0, sizeOf(Vokabeln[]) - 1

    Imprimir Vokabeln[&bucle]

EndWhile

WaitInput
end

Das Auskommentierte Res("AddStrings",..) sería Yo como extra Programa
hacer, el später eventuelle Los cambios el Ressource vornimmt.
Oder mach lo como extra Programmpunkt.
Dann kannst du en cualquier momento Vokabeln dazu hacer y necesidad no
extra Ressourcen-Editor mehr.

Und con el Move-Características puede ser en efecto muy bien Textdateien,
en denen el neuen Vokabeln posición, einlesen y en Listboxliste
en una Array transferieren. Somit voluntad Resourcenänderungen muy
komfortabel.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
28.09.2020  
 




Georg
Teles
Mir fällt en, dass
PRGName$      = RES("GetStrings", PRGDLL&, "#100", $00407)

una Array zurückgibt, pero yo bekomme lo auch no hin, lo auszulesen

So funktioniert lo, pero yo verstehe no por qué
Declarar PRGNameN$[]'-------------------------------------#
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)'--#
PRGName$ = PRGNameN$[4]'---------------------------------#

ganzer Code
'*******************************************************************************************************'
'* Programa: Vokabeltrainer                                                                            *'
''******************************************************************************************************'
'* Versión: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Vokabeltrainer                                                                             *'
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Klassendefinition                                                                                   *'
'*******************************************************************************************************'
CLASS Vokabel = Wort$(21), \
Uebersetzung$(21), \
Genus$(2), \
Casus$(13), \
Numerus$(11), \
Verb1$(21), \
Verb22$(21), \
Verb3$(21), \
Lektion$(13)', \
' Anlegen&, \
' Importieren@, \
' Exportieren@, \
' Vorlesen@
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendeklaration                                                                                *'
'*******************************************************************************************************'
'*- Programa -*'
DECLARE PRGDLL&
DECLARE PrgName$
DECLARE x!, xx!, y!, yy!
'*******************************************************************************************************'
'*- Diálogo -*'
DECLARE DlgText&[5,30], DlgText$[5,30]
DECLARE DlgEdit&[5,30]
DECLARE ToolBar&, ToolbarIcons&   , TabControl&[5]
'*******************************************************************************************************'
'*- Vobaln -*'
DECLARE Begriff#
DECLARE String Textos[]
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendimensionierung                                                                            *'
'*******************************************************************************************************'
DIM Begriff#, Vokabel
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Wertzuweisungen                                                                                     *'
'*******************************************************************************************************'
PRGDLL&       = USEDLL("Vokabeln_32.DLL")
'PRGName$      = RES("GetStrings", PRGDLL&, "#100", $00407)
'PRGName$      = EXTSTRING$(PRGDLL&, 100)
Declarar PRGNameN$[]'-------------------------------------#
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)'--#
PRGName$ = PRGNameN$[4]'---------------------------------#
ToolbarIcons& = 0'Hier später Toolbaricon eintragen
'*******************************************************************************************************'
'*- Skalierung *'
xx! = 1.30
yy! = 1.15
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Prozedurname: MainWindow                                                                            *'
''******************************************************************************************************'
'* Versión: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Baut la ventana principal/-dialog en                                                          *'
'*******************************************************************************************************'

PROC MainWindow

    '*******************************************************************************************************'
    '*- Lokale Parámetro -*'
    DECLARE Handle&
    DECLARE Tab&[5]
    DECLARE dx%, dy%
    DECLARE i%
    DECLARE Ende%
    '*******************************************************************************************************'
    '*- Wertzuweisungen -*'
    x!    = 1.00
    y!    = 1.00
    dX%   = 640
    dy%   = 480
    Ende% = 0
    '*******************************************************************************************************'
    '*- Fensteraufbau -*'
    Handle& = CREATE("Dialog", %HWND, PrgName$, 0,0,0,0)
    SETWINDOWPOS Handle& = INT((%MAXX-dx%)/2)*x!,INT((%MAXY-dy%)/2)*y! - dx%*x!, dy%*y!; 0
    Toolbar&       = CREATE("Toolbar", Handle&, ToolbarIcons&, 0, 0, WIDTH(Handle&), 64*y!)
    TabControl&[1] = CREATE("TabCtrl", Handle&, "Vokabel", 5*x!, HEIGHT(Toolbar&) + 5*x!, WIDTH(Handle&) - 2 * 5*x!, HEIGHT(Handle&) - Height(Toolbar&)-2* 5*x!   )
    FOR i%, 2,5,1
    TabControl&[i%] = INSERTTAB(TabControl&[1], i%,"Tab "+ STR$(i%) )
    ENDFOR
    '*******************************************************************************************************'
    '*- Ereignishandler -*'

    WHILENOT Ende%

        WAITINPUT
        Ende%=1

    ENDWHILE

    '*******************************************************************************************************'
    '*- Ventana schließen -*'
    DESTROYWINDOW(Handle&)
    '*******************************************************************************************************'

ENDPROC

'*******************************************************************************************************'
'*******************************************************************************************************'
'* Hauptprogramm                                                                                       *'
''******************************************************************************************************'
CLS
Mainwindow
DISPOSE Begriff#
FREEDLL PRGDLL&
FIN

Yo sería gern una Erklärung esta haben

Grüße

EDIT:
Como el "Deutsche Texte" en Línea 4 es s. ResHacker, podría el Nummer 4 en el Array qué así zutun haben ?
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

28.09.2020  
 




Stephan
Sonneborn
H.Brill (28.09.2020)
Mach doch alles con Rolands eingebauten Características.


Würde Me gusta hacer, pero yo möchte nada el Vokabeln en uno DLL sichern, pero sólo el Textos el Programmoberfläche. Eigentlich brauche Yo el no para una Vokabelprogramm, como kann el Oberfläche sí ruhig en Alemán bleiben. Aber Yo en el Arbeit una Programa entwickelt, dass en unterschiedlichen Idiomas se ejecuta. Und como gehe Yo siempre todavía el umständlichen Weg con el individual DLL je Lingua y el Auslesen mittels ExtString$(). Yo quería simplemente veces el neuen Möglichkeiten testen.

Dazu debería Yo aber ya wissen, welchen String Yo auslese. Klar, Yo podría ahora para cada Texto una Ressourcenbereich (also el 3. Parámetro en el RES("GetStrings" - Función) festlegen. Aber Yo pensamiento, lo va auch einfacher, z.B. todos Textos en Ventana 1, todos Textos en Ventana 2, todos Hilfetexte a Ventana 1, todos Hilfetexte a Ventana 2 u.s.w. jeweils en una Resourcenbereich ablegen. Damit wäre el DLL viel übersichtlicher, insbesondere entonces, si uno el Texto-Nummern entonces frei festlegen kann, z.B. 100-199 para el Fenstertexte, 200-299 para el zugehörigen Hilfetexte u.s.w.

Yo habe me dafür en Excel una tabla erstellt: en Spalte A el Nummer, en Spalte B una Komma, en Spalte C el Alemán Texto, en D entonces el Englische. In el Spalten E y F se entonces lo el Eintrag para el DLL generiert: Nummer & Komma & Texto en el jeweiligen Lingua. Danach kann Yo entonces en Excel simplemente el todo Spalte kopieren y en el Resource Builder einfügen. Fertig!
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
28.09.2020  
 




Stephan
Sonneborn
Georg Teles (28.09.2020)
Mir fällt en, dass
PRGName$ = RES("GetStrings", PRGDLL&, "#100", $00407)
una Array zurückgibt, pero yo bekomme lo auch no hin, lo auszulesen


Georg Teles (28.09.2020)
So funktioniert lo, pero yo verstehe no por qué
Declarar PRGNameN$ '-------------------------------------#
PRGNameN$ = RES("GetStrings", PRGDLL&, "#7", $00407) '--#
PRGName$ = PRGNameN$ '---------------------------------#


Tuve auch ya una variablen Array probiert con "#7" como 3. Parámetro. Weil el ResHacker como eben una 7 schreibt. ¿Por qué? Yo weiß no...

Das macht auch sólo el ResHacker. Der Resource Builder macht el no. Dafür kann el auch no con Texten como 3. Parámetro (z.B. el "MONAT" en Rolands Ejemplo) leben.

Georg Teles (28.09.2020)
EDIT:
Como el "Deutsche Texte" en Línea 4 es s. ResHacker, podría el Nummer 4 en el Array qué así zutun haben ?


En me erhalte Yo como Rückgabewert para el PRGName$ valor "8", zumindest se como el Fenstertitel adecuado...
Für PRGNameN$ de paso auch...


126 kB
Hochgeladen:28.09.2020
Ladeanzahl71
Descargar
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
28.09.2020  
 




E.T.
Yo nutze para algo como sin Problemas ExtString$ , z.B. así:
SetText Status&, 0, @ExtString$(Prg_Dll& ,40)
oder
Checker&[22] = @Crear("Radio Button",Static_1&[0],@ExtString$(Prg_Dll& ,24),570,305,200,20)

Der Parámetro es entonces genau el Zahl, welche z.B. en el ResHacker genau antes el Texteintrag es.
Im Bsp. más oben also 1584 para "Januar" , 1585 para "Februar" usw...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
28.09.2020  
 




Stephan
Sonneborn
E.T. (28.09.2020)
Yo nutze para algo como sin Problemas ExtString$ , z.B. así:
SetText Status&, 0, @ExtString$(Prg_Dll& ,40)
oder
Checker&[22] = @Crear("Radio Button",Static_1&[0],@ExtString$(Prg_Dll& ,24),570,305,200,20)

Der Parámetro es entonces genau el Zahl, welche z.B. en el ResHacker genau antes el Texteintrag es.
Im Bsp. más oben also 1584 para "Januar" , 1585 para "Februar" usw...


So mache Yo el normalerweise auch. Aber así puede ser no con unterschiedlichen Idiomas trabajo. Oder uno muss con unterschiedlichen Nummernkreisen trabajo, Yo no möchte...
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
29.09.2020  
 




E.T.
Versch. Idiomas para el Programmoberfläche packe Yo siempre en un "verkappte" .ini-Expediente (con "falscher" Erweiterung).
Pro Lingua una Expediente.
Lässt se m.M. después de einfacher bearbeiten o. erweitern, como como cada veces el .dll a bearbeiten.
 
XProfan 11
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
29.09.2020  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.566 Views

Untitledvor 0 min.
Member 862464119.05.2024
H.Brill15.09.2022
RudiB.22.04.2021
Alibre22.02.2021
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie