Español
Foro

Textos de DLL auslesen

 
- Página 1 -



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  
 



 
- Página 1 -



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  
 



 
- Página 2 -



Georg
Teles
Bueno Morgen,

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


RES son en efecto una ARRAY zurück, en dir intenta el Befehl
PRGName$ = RES("GetStrings", PRGDLL&, "#7", $00407)
PRGNameN$ = RES("GetStrings", PRGDLL&, "#7", $00407)

el ARRAY en una String a zwingen, 8 vermute Yo Es el Anzahl el Cuerdas en diesem ARRAY --- du müsstest entsprechend denen String PRGNameN$ como ARRAY definieren, also PRGNameN$[] y de diesem entonces deine Cuerdas heraussuchen
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)
String1$ = PRGNameN$[0]
String2$ = PRGNameN$[1]
...

Ehrlich dijo sehe Yo en el Befehl RES auch no por y habe lo todavía nie angewandt --- persönlich sería Yo como ET ya schrieb con
ExtString$(hDLL& , <String#>)
el Cuerdas de el EXE/DLL auslesen, si así nötig ser se

En media mehrsprachigen Programmen verwende Soy un ARRAY intern, je después de Lingua se el ARRAY entonces entsprechend gefüllt - el es einfacher.

así nebenbei:
Posesiones a ahora sólo en TrackMenüs el Ressourcen en el EXE para mehrsprachige Verwendung benutzt, el erspart entonces wesentlich el Aufbau des TrackMenüs - extern invitar y Mostrar  [...] 

el sieht en el ResHacker entonces así de:



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

30.09.2020  
 




H.Brill
Könnte uno en efecto como RC_DATA Ressource hacer,
especialmente él sí ya una Exceldatei ha. El puede ser sí
auch como normale Textdatei en Excel speichern :
Declarar cadena Menu[], Memory Zona, Largo groesse, anzahl, hdll, info
Def %RT_RCDATA 10
/*
Das como Textdatei speichern y el Reshacker
como RC_DATA bajo TEXTE einfügen :
100, Expediente,File
101,Öffnen,Open
102,Schließen,Cerrar
*/
cls
hdll = UseDLL("E:\vokabeln.dll")
info = Res("Info", hdll, %RT_RCDATA, "TEXTE", 0)
groesse = Res("Size", hdll, info)
Dim Zona, groesse
Zona = Res("Get", hdll, info)
anzahl = Len(String$(Zona, 0), Chr$(13))
' Oder igual con
' Menu[] = Explode(String$(Zona, 0), Chr$(13))
' en el Array transferieren.

WhileLoop 1, anzahl

    Imprimir Substr$(String$(Zona, 0), &LOOP, Chr$(13))
    ' hier kann el todo String(Nr, Alemán, Inglés)
    ' nochmals untergliedert voluntad.

EndWhile

WaitInput
FreeDll hdll
Disponer Zona
end

Tal vez kommt él sí así más.
 
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.
30.09.2020  
 




Stephan
Sonneborn
Nach algo Überlegung y nochmaliger "genauer" Inaugenscheinnahme el Ayuda



Yo me folgendes Konstrukt gebaut:
StringID& = 100
Sektion$ = "#"+STR$(INT(StringID&/16)+1)
Array$[] = RES("GetStrings", PRGDLL&, Sektion$, $00407)
PRGName$ = Array$[INT(StringID&-16*(INT(StringID&/16)))]

Zunächst definiere Yo en uno Hilfsvariablen el Nummer des Cuerdas en el DLL. Dann ermittele Yo el Sektion, also el 3. Parámetro el RES("Getstrings" - Función. Dann kann Yo el Array con el máximo 16 Einträgen füllen, esta voluntad no belegte Nummern automáticamente con Leerstrings versehen. Der real Variables muss Yo entonces sólo todavía el richtigen Eintrag en el Array zuweisen.

Ist algo umständlich, debería aber trabajo...

47 kB
Hochgeladen:30.09.2020
Ladeanzahl72
Descargar
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

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




E.T.
Naja, por qué simplemente, wenns umständlich auch va

... aber cada el seine

Hab solch una Ansatz auch veces por .dll intenta, Habs aber entonces aufgegeben. Hatte entonces pro Lingua simplemente una sep. dll-Expediente gemacht, welche en Prog-Start geladen wurde.

Bin entonces en meiner o.g. Versión con jeweils uno Sprach-Expediente pro Lingua geblieben. Das lässt se para mich al einfachsten Editar y erweitern.
 
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...
04.10.2020  
 




Stephan
Sonneborn
E.T. (04.10.2020)
Naja, por qué simplemente, wenns umständlich auch va

... aber cada el seine

Hab solch una Ansatz auch veces por .dll intenta, Habs aber entonces aufgegeben. Hatte entonces pro Lingua simplemente una sep. dll-Expediente gemacht, welche en Prog-Start geladen wurde.


So tener ego bisher De todos modos gemacht. Yo podría incluso por Laufzeit el Lingua ajustar (sin Neustart).

Aber el "kompliziertere" en-el-Ecke-denken bereitet doch el Hobby-Programmierer el meisten Spaß!
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

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




H.Brill
Also en me funktioniert el :
Declarar String Menu1[], Menu2[]
Declarar Memory Zona1, Zona2
Declarar Largo groesse1, groesse2, anzahl, hdll, info_d, info_e
Def %RT_RCDATA 10
/*
Das como Textdateien speichern y el Reshacker
como RCDATA bajo DEUTSCH y ENGLISCH einfügen :
Alemán.txt :
Öffnen
Guardar
Schließen
Inglés.txt :
Open
Save
Cerrar
*/
cls
hdll = UseDLL("E:\Idiomas.dll")
info_d = Res("Info", hdll, %RT_RCDATA, "DEUTSCH", 0)
info_e = Res("Info", hdll, %RT_RCDATA, "ENGLISCH", 0)
groesse1 = Res("Size", hdll, info_d)
Dim Zona1, groesse1
groesse2 = Res("Size", hdll, info_e)
Dim Zona2, groesse2
Zona1 = Res("Get", hdll, info_d)
Zona2 = Res("Get", hdll, info_e)
anzahl = Len(String$(Zona1, 0), Chr$(13))
Menu1[] = Explode(String$(Zona1, 0), Chr$(13))
anzahl = Len(String$(Zona2, 0), Chr$(13))
Menu2[] = Explode(String$(Zona2, 0), Chr$(13))
PopUp "&Datei"
AppendMenu 100, Menu1[0]
AppendMenu 101, Menu1[1]
AppendMenu 102, Menu1[2]
PopUp "&File"
AppendMenu 100, Menu2[0]
AppendMenu 101, Menu2[1]
AppendMenu 102, Menu2[2]
WaitInput
FreeDll hdll
Disponer Zona1, Zona2
end

Man muß sólo darauf achten, el beiden Ressourcen synchron a
halten. Man podría auch todavía antes el Menütexte Pagar escribir,
a Menüpunkte de el Array mejor a identifizieren. Oder sólo
alles zusammen (100, Öffnen, Open) . Das todo es sí entonces ligeramente
con Substr$() rauszuziehen.
Puesto que hay lo sí Möglichkeiten genug, en algo como a realisieren.
 
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.
04.10.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.562 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