Français
Forum

Textes aus DLL auslesen

 
- page 1 -



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  
 



 
- page 1 -



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
Downloadcounter71
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  
 



 
- page 2 -



Georg
Teles
Guten demain,

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


RES gibt oui aussi une ARRAY zurück, chez dir versucht qui Befehl
PRGName$ = RES("GetStrings", PRGDLL&, "#7", $00407)
PRGNameN$ = RES("GetStrings", PRGDLL&, "#7", $00407)

den ARRAY dans une String trop zwingen, 8 vermute je ist le nombre qui Cordes dans diesem ARRAY --- du müsstest entsprechend denen String PRGNameN$ comme ARRAY définir, alors PRGNameN$[] et aus diesem ensuite deine Cordes heraussuchen
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)
String1$ = PRGNameN$[0]
String2$ = PRGNameN$[1]
...

à vrai dire vois je chez dem Befehl RES aussi pas par et habe es encore nie angewandt --- personnelle serait je comment ET déjà schrieb avec
ExtString$(hDLL& , <String#>)
qui Cordes aus qui EXE/DLL auslesen, si es so nötig son soll

chez meinen mehrsprachigen Programmen verwende je une ARRAY interne, je pour Discours wird qui ARRAY ensuite entsprechend pleine - c'est einfacher.

so nebenbei:
Habe jusqu'à maintenant seulement chez TrackMenüs qui Ressourcen dans qui EXE pour mehrsprachige Verwendung benutzt, cela erspart ensuite wesentlich den Aufbau des TrackMenüs - extern magasin et Montrer  [...] 

cela sieht im ResHacker ensuite so aus:



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

30.09.2020  
 




H.Brill
Könnte on oui aussi comme RC_DATA Ressource faire,
zumal il oui déjà une Exceldatei hat. qui peux on oui
aussi comme normale Textdatei dans Excel Sauver :
Déclarer string Menu[], Memory Bereich, Long groesse, anzahl, hdll, info
Def %RT_RCDATA 10
/*
cela comme Textdatei Sauver et dem Reshacker
comme RC_DATA sous TEXTE insérer :
100, Dossier,File
101,Öffnen,Open
102,Schließen,Fermer
*/
cls
hdll = UseDLL("E:\vokabeln.dll")
info = Res("Info", hdll, %RT_RCDATA, "TEXTE", 0)
groesse = Res("Size", hdll, info)
Faible Bereich, groesse
Bereich = Res("Get", hdll, info)
anzahl = Len(String$(Bereich, 0), Chr$(13))
' ou bien juste avec
' Menu[] = Explode(String$(Bereich, 0), Chr$(13))
' ins Array transferieren.

WhileLoop 1, anzahl

    Imprimer $ Substr(String$(Bereich, 0), &LOOP, Chr$(13))
    ' ici peux qui ganze String(Nr, allemande, Englisch)
    ' nochmals untergliedert volonté.

Endwhile

WaitInput
FreeDll hdll
Dispose Bereich
end

peut-être venez il oui so plus.
 
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
Pour quelque chose Überlegung et nochmaliger "genauer" Inaugenscheinnahme qui Aider



habe je mir folgendes Construire 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 je dans einer Hilfsvariablen qui numéro des Cordes dans qui DLL. ensuite ermittele je qui Sektion, alors den 3. paramètre qui RES("Getstrings" - Funktion. ensuite peux je cela Array avec den maximum 16 Entrées füllen, dabei volonté pas belegte Nummern automatisch avec Leerstrings versehen. qui réel Variablen muss je ensuite seulement encore den richtigen Eintrag im Array zuweisen.

Ist quelque chose compliqué, sollte mais marcher...

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

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




E.T.
bof, pourquoi simple, wenns compliqué aussi allez

... mais jeden cela sa

Hab solch une Ansatz aussi la fois per .dll versucht, Tricolore mais ensuite aufgegeben. Hatte ensuite pro Discours simple une sep. dll-Dossier gemacht, quelle chez Prog-Start geladen wurde.

suis ensuite chez meiner o.g. Version avec jeweils einer Sprach-Dossier pro Discours geblieben. cela peut sich pour mich am einfachsten Travailler et 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)
bof, pourquoi simple, wenns compliqué aussi allez

... mais jeden cela sa

Hab solch une Ansatz aussi la fois per .dll versucht, Tricolore mais ensuite aufgegeben. Hatte ensuite pro Discours simple une sep. dll-Dossier gemacht, quelle chez Prog-Start geladen wurde.


So hab ego bisher De toute façon gemacht. je konnte sogar per Laufzeit qui Discours ajuster (sans Neustart).

mais cela "kompliziertere" um-qui-coin-penser bereitet doch dem Hobby-Programmierer den meisten Amusement!
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

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




H.Brill
alors chez mir funktioniert cela :
Déclarer String Menu1[], Menu2[]
Déclarer Memory Bereich1, Bereich2
Déclarer Long groesse1, groesse2, anzahl, hdll, info_d, info_e
Def %RT_RCDATA 10
/*
cela comme Textdateien Sauver et dem Reshacker
comme RCDATA sous DEUTSCH et ENGLISCH insérer :
allemande.txt :
Öffnen
Sauver
Schließen
Englisch.txt :
Open
Save
Fermer
*/
cls
hdll = UseDLL("E:\Sprachen.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)
Faible Bereich1, groesse1
groesse2 = Res("Size", hdll, info_e)
Faible Bereich2, groesse2
Bereich1 = Res("Get", hdll, info_d)
Bereich2 = Res("Get", hdll, info_e)
anzahl = Len(String$(Bereich1, 0), Chr$(13))
Menu1[] = Explode(String$(Bereich1, 0), Chr$(13))
anzahl = Len(String$(Bereich2, 0), Chr$(13))
Menu2[] = Explode(String$(Bereich2, 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
Dispose Bereich1, Bereich2
end

il faut seulement puis achten, qui beiden Ressourcen synchron trop
tenir. on pourrait aussi encore avant qui Menütexte payons écrivons,
à Menüpunkte aus den Array besser trop identifier. ou bien arrêt
alles zusammen (100, Öffnen, Open) . cela ganze ist oui ensuite léger
avec Substr$() rauszuziehen.
là gibt es oui Opportunités genug, um quelque chose comme trop 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  
 




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.530 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