DLLs et String Table

Sujets variés concernant le développement en PureBasic
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

DLLs et String Table

Message par freddix »

Existe t-il des commandes qui permettent de lire les string table contenus dans une DLL à partir du purebasic ?
Aranoth
Messages : 293
Inscription : sam. 24/janv./2004 12:00
Localisation : Toulouse (31)
Contact :

Message par Aranoth »

nativement non... on ne peut lire que les noms des fonctions et leur adresse
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

en regardant dans les dlls avec un editeur Hexa ont apercois les commandes
qui apparaissent (generalement vers la fin du fichier !! )

verifie pour voir !

et dit moi dans quel dll se trouve les commandes du dark ! ?

core.dll ?


:)
Aranoth
Messages : 293
Inscription : sam. 24/janv./2004 12:00
Localisation : Toulouse (31)
Contact :

Message par Aranoth »

y'a pleins de DLL

attend je regarde avec mon DLLViewer


Voila dans la DLL DBProMatrixDebug.dll
y'a:

Code : Tout sélectionner

?PrepareTexture@@YAXHHHH@Z
et toutes les fonctions se ressemblent
alors que si je teste ma DLL y'a juste le nom sans ? ni @


Esce une piste ?
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

c'est extrait du fichier score.dll , c'est ça que tu cherches à faire ?

133 ressources type "Table de chaines" (code=0006)
--------------------------------------------------------------
ID= 1 PRINT%R%?PrintR@@YAX_J@Z%Print Statements
ID= 2 PRINT%O%?PrintO@@YAXN@Z%Print Statements
ID= 5 PRINT%S%?PrintS@@YAXPAD@Z%Print Statements
ID= 6 PRINT%0%?Print0@@YAXXZ
ID= 7 PRINTC%R%?PrintCR@@YAX_J@Z%Print Statements
ID= 8 PRINTC%O%?PrintCO@@YAXN@Z%Print Statements
ID= 9 PRINTC%S%?PrintCS@@YAXPAD@Z%Print Statements
ID= 10 CLS%0%?Cls@@YAXXZ
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Pour info !



de Sami :
Par exemple:
PRINT TEXT%S%?PrintText@@YAXPAD@Z%String

PRINT TEXT = Commande sous DB Pro
S = Passage d'une chaine de caractéres
?PrintText@@YAXPAD@Z = Nom de la fonction dans la DLL (Il faut donc rechercher PrintText nom de la fonction dans la DLL. Avec le bloc note, on doit trouver ceci ?PrintText@@YAXPAD@Z. Ce qui change pour chaque fonction pour DB Pro c'est YAXPAD@Z).
String = Commentaire sur le nom, le typage des variables à passer pour le debuggage lors de la compilation. En cas de probléme de compilation.
Le document sur la réalisation de TPC est trés compléte à ce sujet.
Toutefois attention au passage de String et de Float. Un peu plus difficile et les exemples ne sont pas parlant.

Les % marquent le passage entre les différents paramétres.

:D
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

@ Comtois :

Oui c'est cela que je veux extraire des DLLs de DBPro :
PRINT%R%?PrintR@@YAX_J@Z%Print Statements
Si j'ai une commande en DBPro qui me permette de lire tout les textes des string table dans une donnée de type String . Je pourrais faire un Wrapper complet de commandes DBPro pour le purebasic :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

arrete moi si je me trompe !

mais un wrapper c'est lorsqu'un language ou prg utilise les fonction d'un autre language ou prg non ?


or en pure basic on peut appeler les fonctions de Darkbasic en utilisant la dll ou se trouve les commandes du Dark non ?

en quoi le fait que le dark puisse lire ou ne pas lire les strings tables
empeche le pure d'utiliser les fonctions Dark basic
puisqu'en plus on a la doc des fonctions du Dark, et de ses parametres !

8O
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

depuis le temps que je donne cette adresse , je pensais que tu l'avais déjà dans tes favoris :)

http://www.bellamyjc.net/fr/scanbin.html

il te ressort toute la table , maintenant si tu veux le faire par toi même , il te sort aussi les adresses de la zone ressource , en étudiant un peu l'entête ça doit être possible de se bricoler un truc .
Répondre