Echange de donnée entre Pure et C++

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Echange de donnée entre Pure et C++

Message par olivier »

Salut à tous

Voilà, je me lance dans une boite de dev en collaboration avec un pote.
Il programme en C et moi en pure, on a donc besoins de s'envoyer des données !
L'executable est en pure, et les DLL en C++
On arrive à s'envoyer une variable de type long, une variable de type string, un tableau de type long, un tableau de type string, une structure avec des long, une structure avec des tableau de long................ mais on n'arrive pas à envoyer une structure avec des variables String !

1°) Quelqu'un aurait il une idée pour envoyer une structure de variables de type String ?

2°) Le nom des procédures de sa DLL, change : test_dll() devient _test_dll@0(); cela est il normal, y a t-il un remède ?

3°) J'appelle les fonctions de la dll comme cela :

Code : Tout sélectionner

OpenLibrary(0, "database_dll.dll")
CallFunction(0, "_test_dll@0")
CloseLibrary(0)
Existe t-il un moyen pour les appeller plus simplement ?

4°) Est-il possible d'avoir une variable string comme retour ?


Merci d'avance pour vos réponse et bonne prog à tous !
Stef
Vive le temps libre !
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

"Qui baise trop bouffe un poil." P. Desproges
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

*double post*

PS : le forum a de gros problèmes ... (je n'ai pas double posté)
"Qui baise trop bouffe un poil." P. Desproges
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Merci Karlkox,

mais je ne voie pas de structure avec une variable de type string qui est envoyé à la DLL.

Faut-il que je mette mes lunettes ???? :?
Vive le temps libre !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Existe t-il un moyen pour les appeller plus simplement ?
oui il y a plus simple.
si ton pote t'envoie 2 fichiers malib.dll et malib.lib, tu pourras utiliser libimporter (dans le dossier de purebasic). ainsi les fonctions seront reconnues directement dans l'éditeur comme les fonctions de l'api genre beep_().

ou alors avec pb4 tu utilises Import "malib.lib" / EndImport
ce qui est à mon avis l'idéal. çà ne dispense pas d'avoir la dll dans le dossier.
ca permet juste de les intégrer facilement.[/code]
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Est-il possible d'avoir une variable string comme retour ?
Structure MYSTRING
string1.l
string2.l
EndStructure

*mystruct.MYSTRUCT = myfunc()

et a tu essayé avec PeekS(*mystruct\string1) ?

les chaines renvoyées par votre dll sont-elles terminées par zéro, ce qui est obligatoire ? à moins de faire PeekS(*mystruct\string1,32) par ex.
Image
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Salut Flype

Pour ce qui concerne d'importer d'importer la lib je vais essayer cela, ça m'a l'air tres interessant... :D

Pour le retour par une string, j'ai bien eu l'idée de diriger vers un pointeur, mais je voulais savoir si il y a moyen de retourner directement une String ?

Dans tous les cas merci beaucoup pour tes réponses.
Vive le temps libre !
Répondre