DLL pure basic et DLL Visual Basic

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

DLL pure basic et DLL Visual Basic

Message par andrebernard »

Bonjour

Je suis un programmeur débutant, et comme beaucoup de personne je suis passé naturellement de QBASIC à VB.

Hors la complexité de la mise en oeuvre (Dll, runtime, etc) , le prix, etc ...
m'ont fait me tourner vers un autre language.
C'est comme cela que j'ai découvert ce splendide language que j'essaie
actuellement.

Je lui fait beaucoup de pub et épate déja beaucoup de gens de mon entourage par sa puissance sa simplicité et surtout les nombreux codes que l'on trouve dans la communauté, qui soutiennent beaucoup l'aide qui à mon avis est un peu succinte (Manque de petits exemples pour certaines instruction).

J'aimerais juste savoir si il est possible simplement, de créer une dll en PB pour l'utiliser dans VB ou VBA (access,excell)

J'ai essayé avec 3 message box mais j'arrive juste a voir l'ouverture et la
fermeture de la dll dans laquelle j'ai mis un msgbox dans chaque, mais quand a la structure le message box "Coucou,je suis un message box venant d'une DLL" n'apparait pas.

VOICI LE CODE :
***************

ProcedureDLL AttachProcess(Instance)
MessageRequester("Bonjour","Le chargement de la DLL est effectué")
EndProcedure

ProcedureDLL DetachProcess(Instance)
MessageRequester("Aurevoir","La DLL a été déchargée")
EndProcedure

ProcedureDLL Message()
MessageRequester("Bonjour","Coucou,je suis un message box venant
d'une DLL")
EndProcedure

J'obtiens un message erreur d'ACCESS, "Point d'entrée GETMESSAGE d'une dll introuvable"

Je n'ai pas trouvé de réponse sur les sites dédié à ce génial logiciel.

Je suis préssé de quitter microsoft avec ses patchs et ses bug et versions a n'en plus finir.

Bonnes journée
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

De mémoire, VB ne supporte que les DLL qui exportent leurs fonctions via _stdcall et non en _cdecl comme le fait PureBasic.
J'en avais fait part à Fred (export avec le signe "@" dans le nom de la fonction) mais j'attend toujours.
Je ne suis pas chez moi mais je ferais un test pour en être sur (je me souvient avoir quand même réussi à utiliser une de mes dll en _cdecl ...).
Sinon, peut être avec la version 4 qui arrive bientôt, cela sera possible :)
"Qui baise trop bouffe un poil." P. Desproges
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

dans ce cas à quoi sert le mot-clé ProcedureCDLL ???
et pourquoi le point d'entrée serait GETMESSAGE alors que la fonction c'est Message ?

[edit]
j'ai créé une dll avec ton code et j'ai essayé de la charger en créant un autre code PB et j'ai eu aucun probleme de ce côté là... J'ai bien les 3 messagebox qui s'ouvrent sans problème...

Dri
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Salut,

je viens de créer une DLL avec ton code.
Puis dans excel 97, j'ai créé un bouton auquel j'associe ca (CommandButton 1 | Click):

Private Sub CommandButton1_Click()
Message
End Sub

Et j'ajoute ça dans les déclarations du module (Général|Déclarations):

Declare Sub Message Lib "C:\MaDLL.dll" ()

C'est tout, et ça marche impec.
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Message par andrebernard »

Bonjour

Pour repondre a KarLKoX

J'ai aussi envoyé 2 mails à Fred (que je felicitais au passage de son formidable logiciel) concernant les DLL entre VB et Pure.

Surtout pour avoir des renseignements sur la compatibilité entre les deux.

Puis sur le fait que dans le copyright il explique :

Est-il autorisé d'utiliser les DLL produites avec PureBasic dans d'autres applications ?

Oui. Néanmoins, il n'est pas autorisé de faire des DLL contenant seulement des commandes spécialisées (Movie, Sprites etc..) destinées à être utilisées dans d'autres langages de programmation.


Je n'ai pas non plus obtenu de reponse de sa part.

Je pense que outre le fait qu'il doit tres débordé, c'est peut etre un sujet sur lequel il est un peu frileu et je le comprend.
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Message par andrebernard »

Bonjour RegisLG

Je te remercie, je vais essayer ce week end pile poil comme tu viens de me dire et si ça marche alors la je ne comprend pas ????

Moi j'utilise Acces 2000, et VB6 est ce que ce serait ça ????

Je donnerais le resultat sur ce forum

En tous cas merci de ta reponse rapide.
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Message par andrebernard »

Bonjour Dr Dri

Pourrait tu me donner plus de details ?????

Je suis vraiment hyper nul en DLL (et pas qu'avec ça d'ailleurs).

C'est bien avec VB6 que tu n'a pas eu de bleme ???

Quel est le code exact (au plus simple) qu'il faut mettre dans pure ????

Quel est le code exact ( au plus simple ) qu'il faut mettre dans VB ????

Je commence tout juste a travailler avec les API en VB donc tu vois la route qu'il me reste a faire...

En tous cas, je te remercie beaucoup de t'etre penché sur le probleme d'un modeste programmeur debutant.
Répondre