Français
Forum

Textes aus DLL auslesen

 

Stephan
Sonneborn
Salut,
dans qui LEER32.DLL habe je testweise avec dem ResourceBuilder deux Cordes eingefügt:

einmal dans qui Discours allemande $0407 bzw. 1031:

et einmal dans qui Discours Englisch $0809 bzw. 2057:

qui DLL habe je sur USEDLL eingebunden.
Den Text weise je so trop:
DE_Text$ = RES("GetStrings", PRGDLL&, 100, $00407)
EN_Text$ = RES("GetStrings", PRGDLL&, 100, $00809)

mais je bekomme qui Fehlermeldung "String-Ressource pas trouvé: #100".

quoi ist faux?
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

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




Georg
Teles
Guten journée,

comment sieht qui vide32.DLL avec dem Ressource Hacker aus, etwa so ?



ensuite müsstest Du qui 100 dans Anführungszeichen mettons, alors
DE_Text$ = RES("GetStrings", PRGDLL&, "100", $00407)
EN_Text$ = RES("GetStrings", PRGDLL&, "100", $00809)

qui 3.te paramètre ist entweder qui numéro des Stringes, beginnend avec 1 ou bien qui nom, alors dans dem le cas "100"

je vermute, du müsstest "100" eingeben ou bien seulement 1 comme ersten String dans qui Ressource, ensuite sollte es aller.

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

28.09.2020  
 




Stephan
Sonneborn
je bearbeite qui DLL eigentlich toujours avec dem Resource Builder. là sieht cela
ensuite so aus:



si je cela Bespiel aus qui Aider eingebe et ensuite qui so erstellte vide32.dll avec dem Resource Builder bearbeite, venez une Fehlermeldung:



avec dem ResHacker siehts so aus:



Gebe je ensuite "7" comme dritten paramètre à, fonctionne des Programme plus, liest mais "6" comme Wert bzw. Text un, qui so gar pas dans qui DLL auftaucht.

qui XProfan-Fehlermeldung ist incidemment aussi chez "100" comme dritten paramètre dieselbe.

Bisher habe je toujours qui komplette DLL (je Discours une DLL) ausgetauscht et ExtString$() gearbeitet. là gibt on oui c'est ca qui numéro dans qui DLL (alors ici qui 100) à. mais malheureusement plan sans Unterscheidung chez qui Discours.

39 kB
Hochgeladen:28.09.2020
Downloadcounter29
Download
16 kB
Hochgeladen:28.09.2020
Downloadcounter31
Download
23 kB
Hochgeladen:28.09.2020
Downloadcounter34
Download
 
Schöne Grüße aus Wittgenstein
von Stephan

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



Hi,

je crois là fehlt un Rautezeichen "#100" -

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



(fois le Hilfedatei durchstöbern, quoi Roland zwischenzeitlich so alles incorporé hat...)

 
28.09.2020  
 




Stephan
Sonneborn
malheureusement hilft un "#100" aussi pas...

ici la fois qui bisherige Quellcode:
'*******************************************************************************************************'
'* Programme: Vokabeltrainer                                                                            *'
''******************************************************************************************************'
'* Version: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Vokabeltrainer                                                                             *'
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Klassendefinition                                                                                   *'
'*******************************************************************************************************'
CLASS Vokabel = mot$(21), \
Uebersetzung$(21), \
Genus$(2), \
Casus$(13), \
Numerus$(11), \
verbe1$(21), \
verbe22$(21), \
verbe3$(21), \
Lektion$(13)', \
' Anlegen&, \
' Importieren@, \
' Exportieren@, \
' Vorlesen@
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendeklaration                                                                                *'
'*******************************************************************************************************'
'*- Programme -*'
DECLARE PRGDLL&
DECLARE PrgName$
DECLARE x!, xx!, y!, yy!
'*******************************************************************************************************'
'*- Dialog -*'
DECLARE DlgText&[5,30], DlgText$[5,30]
DECLARE DlgEdit&[5,30]
DECLARE ToolBar&, ToolbarIcons&   , TabControl&[5]
'*******************************************************************************************************'
'*- Vobaln -*'
DECLARE Begriff#
DECLARE String Textes[]
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendimensionierung                                                                            *'
'*******************************************************************************************************'
DIM Begriff#, Vokabel
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Wertzuweisungen                                                                                     *'
'*******************************************************************************************************'
PRGDLL&       = USEDLL("Vokabeln_32.DLL")
'PRGName$      = RES("GetStrings", PRGDLL&, "#100", $00407)
PRGName$      = EXTSTRING$(PRGDLL&, 100)
ToolbarIcons& = 0'ici später Toolbaricon eintragen
'*******************************************************************************************************'
'*- Skalierung *'
xx! = 1.30
yy! = 1.15
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Prozedurname: MainWindow                                                                            *'
''******************************************************************************************************'
'* Version: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Baut cela Hauptfenster/-dialog sur                                                          *'
'*******************************************************************************************************'

PROC MainWindow

    '*******************************************************************************************************'
    '*- Lokale paramètre -*'
    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

    '*******************************************************************************************************'
    '*- la fenêtre schließen -*'
    DESTROYWINDOW(Handle&)
    '*******************************************************************************************************'

ENDPROC

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

et qui zugehörige DLL.

8 kB
Hochgeladen:28.09.2020
Downloadcounter40
Download
 
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 avec Rolands eingebauten Funktionen.
Déclarer string Vokabeln[]
cls
var string DE[] = "Erster", "Zweiter", "Dritter"
var string 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

    Imprimer Vokabeln[&loop]

Endwhile

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

WhileLoop 0, sizeOf(Vokabeln[]) - 1

    Imprimer Vokabeln[&loop]

Endwhile

WaitInput
end

cela Auskommentierte Res("AddStrings",..) serait je comme extra Programme
faire, cela später eventuelle Changements qui Ressource vornimmt.
ou bien mach es comme extra Programmpunkt.
ensuite peux du jederzeit Vokabeln en supplément faire et brauchst keinen
extra Ressourcen-Editor plus.

et avec den Move-Funktionen peux on oui aussi très bien Textdateien,
dans denen qui neuen Vokabeln stehen, einlesen et sur qui Listboxliste
dans un Array transferieren. Somit volonté Resourcenänderungen très
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 sur, dass
PRGName$      = RES("GetStrings", PRGDLL&, "#100", $00407)

un Array zurückgibt, mais je bekomme es aussi pas hin, es auszulesen

So funktioniert es, mais je comprends pas pourquoi
Déclarer PRGNameN$[]'-------------------------------------#
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)'--#
PRGName$ = PRGNameN$[4]'---------------------------------#

ganzer Code
'*******************************************************************************************************'
'* Programme: Vokabeltrainer                                                                            *'
''******************************************************************************************************'
'* Version: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Vokabeltrainer                                                                             *'
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Klassendefinition                                                                                   *'
'*******************************************************************************************************'
CLASS Vokabel = mot$(21), \
Uebersetzung$(21), \
Genus$(2), \
Casus$(13), \
Numerus$(11), \
verbe1$(21), \
verbe22$(21), \
verbe3$(21), \
Lektion$(13)', \
' Anlegen&, \
' Importieren@, \
' Exportieren@, \
' Vorlesen@
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendeklaration                                                                                *'
'*******************************************************************************************************'
'*- Programme -*'
DECLARE PRGDLL&
DECLARE PrgName$
DECLARE x!, xx!, y!, yy!
'*******************************************************************************************************'
'*- Dialog -*'
DECLARE DlgText&[5,30], DlgText$[5,30]
DECLARE DlgEdit&[5,30]
DECLARE ToolBar&, ToolbarIcons&   , TabControl&[5]
'*******************************************************************************************************'
'*- Vobaln -*'
DECLARE Begriff#
DECLARE String Textes[]
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendimensionierung                                                                            *'
'*******************************************************************************************************'
DIM Begriff#, Vokabel
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Wertzuweisungen                                                                                     *'
'*******************************************************************************************************'
PRGDLL&       = USEDLL("Vokabeln_32.DLL")
'PRGName$      = RES("GetStrings", PRGDLL&, "#100", $00407)
'PRGName$      = EXTSTRING$(PRGDLL&, 100)
Déclarer PRGNameN$[]'-------------------------------------#
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)'--#
PRGName$ = PRGNameN$[4]'---------------------------------#
ToolbarIcons& = 0'ici später Toolbaricon eintragen
'*******************************************************************************************************'
'*- Skalierung *'
xx! = 1.30
yy! = 1.15
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Prozedurname: MainWindow                                                                            *'
''******************************************************************************************************'
'* Version: V0.01                                                                                      *'
'* Stand:   28.09.2020                                                                                 *'
'* Info:    Baut cela Hauptfenster/-dialog sur                                                          *'
'*******************************************************************************************************'

PROC MainWindow

    '*******************************************************************************************************'
    '*- Lokale paramètre -*'
    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

    '*******************************************************************************************************'
    '*- la fenêtre schließen -*'
    DESTROYWINDOW(Handle&)
    '*******************************************************************************************************'

ENDPROC

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

je serait gern une Erklärung hierfür avons

Grüße

EDIT:
là qui "Deutsche Texte" dans la ligne 4 steht s. ResHacker, pourrait qui numéro 4 im Array quoi avec cela zutun avons ?
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

28.09.2020  
 




Stephan
Sonneborn
H.Brill (28.09.2020)
Mach doch alles avec Rolands eingebauten Funktionen.


Würde je volontiers faire, mais je voudrais gar pas qui Vokabeln dans einer DLL sichern, mais seulement qui Textes qui Programmoberfläche. Eigentlich brauche je cela pas pour un Vokabelprogramm, là peux qui surface oui calme dans allemande rester. mais j'ai sur qui travail un Programme entwickelt, dass dans unterschiedlichen Sprachen fonctionne. et là vais je toujours den umständlichen Weg avec den individuel DLL je Discours et dem Lecture mittels ExtString$(). je voulais simple fois le neuen Opportunités testen.

en supplément sollte je mais déjà savons, welchen String je auslese. bien sûr, je pourrait maintenant pour jeden Text une Ressourcenbereich (alors den 3. paramètre dans qui RES("GetStrings" - Funktion) festlegen. mais je dachte, und dir aussi einfacher, z.B. alle Textes sur la fenêtre 1, alle Textes sur la fenêtre 2, alle Hilfetexte trop la fenêtre 1, alle Hilfetexte trop la fenêtre 2 u.s.w. jeweils dans une Resourcenbereich enlever. avec cela wäre qui DLL viel übersichtlicher, insbesondere ensuite, si on qui Text-Nummern ensuite libre festlegen peux, z.B. 100-199 pour qui Fenstertexte, 200-299 pour qui zugehörigen Hilfetexte u.s.w.

j'ai mir pour dans Excel une Tabelle erstellt: dans Spalte A qui numéro, dans Spalte B un Komma, dans Spalte C l'Allemand Text, dans D ensuite qui Englische. dans den Spalten E et F wird ensuite daraus qui Eintrag pour qui DLL generiert: numéro & Komma & Text dans qui jeweiligen Discours. après peux je ensuite dans Excel simple qui ganze Spalte kopieren et im Resource Builder insérer. 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 sur, dass
PRGName$ = RES("GetStrings", PRGDLL&, "#100", $00407)
un Array zurückgibt, mais je bekomme es aussi pas hin, es auszulesen


Georg Teles (28.09.2020)
So funktioniert es, mais je comprends pas pourquoi
Déclarer PRGNameN$ '-------------------------------------#
PRGNameN$ = RES("GetStrings", PRGDLL&, "#7", $00407) '--#
PRGName$ = PRGNameN$ '---------------------------------#


je hatte aussi déjà une variablen Array probiert avec "#7" comme 3. paramètre. Weil qui ResHacker là plan une 7 écrit. pourquoi? je sais es pas...

cela fait aussi seulement qui ResHacker. qui Resource Builder pouvoir cela pas. Pour cette peux qui aussi pas avec Texten comme 3. paramètre (z.B. dem "MONAT" dans Rolands Beispiel) vivre.

Georg Teles (28.09.2020)
EDIT:
là qui "Deutsche Texte" dans la ligne 4 steht s. ResHacker, pourrait qui numéro 4 im Array quoi avec cela zutun avons ?


chez mir erhalte je comme Rückgabewert pour den PRGName$ la valeur "8", zumindest wird cela comme Fenstertitel angezeigt...
Pour PRGNameN$ incidemment aussi...


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

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




E.T.
je nutze pour quelque chose comme sans Probleme ExtString$ , z.B. so:
SetText Status&, 0, @ExtString$(Prg_Dll& ,40)
ou bien
Checker&[22] = @Créer(Bouton Radio ",Static_1&[0],@ExtString$(Prg_Dll& ,24),570,305,200,20)

qui paramètre ist ensuite oui c'est ca qui numéro, quelle z.B. im ResHacker oui c'est ca avant dem Texteintrag steht.
Im Bsp. plus dessus alors 1584 pour "Januar" , 1585 pour "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)
je nutze pour quelque chose comme sans Probleme ExtString$ , z.B. so:
SetText Status&, 0, @ExtString$(Prg_Dll& ,40)
ou bien
Checker&[22] = @Créer(Bouton Radio ",Static_1&[0],@ExtString$(Prg_Dll& ,24),570,305,200,20)

qui paramètre ist ensuite oui c'est ca qui numéro, quelle z.B. im ResHacker oui c'est ca avant dem Texteintrag steht.
Im Bsp. plus dessus alors 1584 pour "Januar" , 1585 pour "Februar" usw...


So fais je cela normalement aussi. mais avec cela peux on pas avec unterschiedlichen Sprachen travailler. ou bien on muss avec unterschiedlichen Nummernkreisen travailler, quoi je pas voudrais...
 
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. Sprachen pour qui Programmoberfläche packe je toujours dans un "verkappte" .ini-Dossier (avec "falscher" Erweiterung).
Pro Discours une Dossier.
Lässt sich m.M. pour einfacher Travailler bzw. erweitern, comme comment chaque fois le .dll trop Travailler.
 
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  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.457 Views

Untitledvor 0 min.
Member 862464119.05.2024
H.Brill15.09.2022
RudiB.22.04.2021
Alibre22.02.2021
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie