Forum | | | | 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 X4Schö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 |
| | | | |
| | 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. |
| | | 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...) |
| | | | |
| | 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. |
| | | 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 ? |
| | | | |
| | 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 X4Schö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...
|
| | | XProfan X4Schö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 X4Schö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 11Grüß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épondreOptions du sujet | 7.529 Views |
Themeninformationencet Thema hat 5 participant: |