Verrouillage de la BDR et DLL ActiveX en pure (Titre changé)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
lewkey
Messages : 45
Inscription : jeu. 26/avr./2007 20:39

Message par lewkey »

surement parce que Monsieur Billou veux que l'on programme avec Son VB!!!!!!! , et pour ceux qui programmes avec autre choses, ????? ...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je ne sais pas ce que c'est cette histoire avec le Base de registre 8O

pour faire une dll et l'utiliser, nul besoin de declarer quoique ce soit a la base de registre , (du moins en Purebasic,C,c++,c#) , a ma connaissance :?
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

Dobro a écrit :pour faire une dll et l'utiliser, nul besoin de declarer quoique ce soit a la base de registre , (du moins en Purebasic,C,c++,c#) , a ma connaissance :?
seules les DLLs ActiveX (qui ne sont pas vraiment des DLLs) on besoin de s'enregistrer.
brossden
Messages : 822
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour à tous.

Ou avez vous lu que les ActiveX étaient des DLLs ????

Sur Wikipédia on peut lire, "L'ActiveX , est un composant logiciel (comme les DLL) ", il n'est pas dit que c'est une DLL !!!!!
Faut apprendre à lire là !

Un moteur est un composant automobile (Comme les freins) !

Je n'ai pas dit ici qu'un moteur était un frein !!!!!!
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Mon cher Brossden

Si tu tape dans google "dll activex" tu va te retrouver avec WhatMille lien a cliqueté au gré des vents et marais. :)

Et dans lesquels il ont bien l'air de dire que les DLL activeX existent belle et bien et que bilou il oblige à ce que l'on les enregistre.

Témoin ce post de VBFrance.com :

http://www.vbfrance.com/infomsg_UTILISE ... 98522.aspx

Alors si toi tu dis le contraire je n'y comprend plus rien 8O

Voila un autre lien PDF interessant sur les DLL activeX ou le gars à l'air de s'y connaitre noir:
http://activex.developpez.com/%5BActive ... ctiveX.pdf

Je pense que VB n'est pas pres de mourir et que malgres ma passion pour pure et le C (Que je ne connais meme pas le titre encore :lol: ) on aura toujours besoin de bidouiller des codes en VB car la majorité des grosses boites font du VBA.
Et si on arrive a briser les barrieres entre les VRAIS language et les "bidouillgages" on pourra prouver à tout ces amateurs ce que deviens leur soit disant genial VBA quand on le boost au purebasiconium et par cette action imposer ce type de language.

C'est ce qui se passe pour l'instant a mon boulot, mais ça ne devrait pas durer, alors j'en profite puisque une breche est ouverte.

De ne pas se mettre a la portée de la majorité du public c'est l'erreur qu'a fait LINUX et qu'il essaye de corriger maintenant au moins avec UBUNTU.
Cet OS n'est reconnu que pour sa complexité et son coté inabordable, alors qu'on ne parle jamais de l'aspect securitaire, stable, puissant etc...chez les amateurs
Et a terme ce sera bien le grand public le client principal a toucher, enfin je pense.

Et apres tout on achete que lorsque on ai convaincu ou obligé non?

Voila ce sont mes motivations, c'est la raison pour laquelle je suis content que des tronches se soit penchées sur le berceau de ce probleme en creant des lib pour acceder aux objet COM avec pure.
J'espere qu'il ne vont pas s'en arreter la.

Le meilleur moyen de combattre c'est de l'interieur, non.
C'est pas moi qui l'ai inventé, c'est un cheval en bois de l'antiquité :wink:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

J'ai tenté de poser la question sur le forum USA avec mon anglais bien de chez nous :D

Rings m'a gentillement confirmé le fait que VB ne fait pas des DLL normales mais des ActiveX obligatoirement enregistrable.
Enfin si j'ai bien compris :roll:

http://www.purebasic.fr/english/viewtopic.php?t=27215

Par contre apparement une lib/Commandset de puredishelp devrait savoir les utiliser.....

J'ai essayé cette lib pour faire marcher le sorcier que j'ai trouvé rigolo, ainsi que DOBRO mais apparement ça fait plus qu'etre rigolo :D

http://www.purebasic.fr/french/viewtopi ... highlight=

Donc je vais essayer a nouveau de comprendre comment on peut appeller un DLL ActiveX avec cette merveille.
C'est pas gagné.

Je serais pas contre un petit coup de pouce comme avec la société générale :D
brossden
Messages : 822
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Kwai machin truc chose..

J'ai suivis tes liens, j'ai chargé la librairie et les examples et chez moi tout fonctionne ... Même merlin !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Oui oui moi aussi j'suis arrivé a faire fonctionner merlin.

Mais comment ferait tu pour utiliser la DLL ActiveX suivante

http://purebasic.myftp.org/?filename=fi ... dition.dll

Code de la DLL VB ActiveX du lien au dessus

Code : Tout sélectionner

Public Function Addition(a, b)
 MsgBox "Coucou, j'suis dans la DLL"
 Addition = a + b
End Function
Code Pure

Code : Tout sélectionner

If OpenLibrary(0, "VbAddition.dll") 
 a = CallFunction(0, "Addition", 2, 3) 
 MessageRequester("Addition", Str(a), #MB_OK) 
 CloseLibrary(0) 
Else
 MessageRequester("Erreur", "La Dll VbAddition est absente", 0) 
EndIf 
Voila voila....
brossden
Messages : 822
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Pour Kwai ...
Tu peux me dire d'ou provient cette DLL ?
Denis

Bonne Jounée à tous
Sami
Messages : 51
Inscription : mar. 01/nov./2005 21:13
Localisation : Savigny-Sur-Orge

Message par Sami »

Bonjour,

Quelques précisions.

VBA (Visual Basic Application) ne permet pas de faire de DLL. C'est le langage script intégré dans la suite Microsoft Office. Ca permet de réaliser des macros et des programmes simples.

VB 6.0 ne permet pas de faire des DLLs mais des objets ActiveX. Il y a quand même des différences entre DLL et objets ActiveX.
Voici des liens pour infos!
http://faq.vb.free.fr/index.php?question=108
http://www.developpez.net/forums/showth ... p?t=247078

VB 7 ou VB.NET permet de créer des DLLs. C'est basé sur le framework .NET, ca peut être portable avec MONO. On programme en objet pure et dure. Ce qui n'était pas le cas en VB 6.0 ou VBA. (Bien qu'il existe des modules de classe)

Samuel Didier
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@Brossden
La DLL ActiveX, je l'ai faite avec VB6 elle correspond au code qui est en dessous.
C'etait au cas ou celui qui voulait m'aider n'avait pas VB pour en faire une lui-meme.
Puisque le but du jeu est d'arriver avec pure a faire apparaitre la message box "Coucou, j'suis dans la DLL" ce qui voudrait dire que l'on est bien arrivé avec pure a entrer dans la DLL, puis avoir le messagerequester de l'addition du chiffre 2 + 3 = 5 ce qui voudrait dire que cerise sur le ponpon on est meme arrivé a retourner la valeur de cette DLL donc que l'on arrive a faire fonctionner une DLL ActiveX avec pure.

@Sami
Merci de tes précisions.
Par contre j'ai l'impression que l'on appelle cette chose que nous a pondu bilou parfois objet, parfois DLL, parfois controle, Parfois ActiveX etc ...enfin bref c'est une daube qui n'est pas comme les autres c'est a dire proprietaire comme tout ce que fait bilou.

Je suis un peu surpris de ta reponse car lorsque dans VB6 lui-meme tu fais nouveau projet c'est bien ecris en dur dans le choix : "DLL ActiveX" 8O
Donc benet comme je suis je suppose que pour crosoft DLL ActiveX c'est une DLL.
Par contre ça n'a apparement de DLL que le nom puisque ni le C, ni pure ou autre language n'arrive a communiquer avec ce bastion qui est censé justement pouvoir communiquer avec tout le monde.

Est ce que les DLL windows sont des activeX ????? comme le kernel32 etc je ne le pense pas.

J'ai lu tes liens et apparement c'est pas simple la DLL et on y fourre un peu tout sous ce nom.

Au fait je ne connaissais pas VB7 8O
Comment on l'utilise, c'est un laguage comme VB6???
Ou bien juste un compilateur???
Si c'est un compilateur comment fait on, il recupere les fichiers vbp ...etc pour les convertir en exe ou DLL ???

Meric de votre aide
brossden
Messages : 822
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Kwai ...

Arrives tu as utiliser ta DLL avec VB6 ?
Denis

Bonne Jounée à tous
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

Kwai chang caine a écrit :Au fait je ne connaissais pas VB7 8O
Comment on l'utilise, c'est un laguage comme VB6???
Ou bien juste un compilateur???
Si c'est un compilateur comment fait on, il recupere les fichiers vbp ...etc pour les convertir en exe ou DLL ???
VB7 c'est VB.NET 2002, tu as VB7.1 qui est VB.NET 2003 et VB8 qui est VB.NET 2005, ce dernier est gratuit en version express (et en pro pour avec MSDNAA)
A partir de .NET, tous les langages sont réunis en un seul IDE qui est surpuissant (VB6 c'est de la camelote)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@Minirop

Merci de tous ces eclaircissements, avec toutes ces versions je m'y paume :?
Quand je pense qu'on ose se plaindre d'un changement de version de FRED :lol:

@Brossden

A force d'essayer des codes pures mélangé a du VB et de les bidouiller a donf, je sais plus ou j'en suis.

Alors voila, j'ai retrouvé le premier code qui fonctionne.
Celui qui correspond au debut de ce post.
Plus simple tu meurs :)

http://www.vbfrance.com/codes/DLL-DEBUT ... 30828.aspx

Pour ceux qui ne sont pas inscrit (normal le forum de pure est tellement mieux :wink: ) ou ne peuvent créer le exe, voici donc le code entier de la Dll ActiveX VB que l'on trouve dans le lien ci-dessus :

Code : Tout sélectionner

Public Function bob()
 MsgBox "hello"
End Function
Si ça c'est pas simple :)

Voici donc le code entier VB qui appelle la Dll ActiveX VB :

Code : Tout sélectionner

Option Explicit

Private Declare Function bob Lib "dll_de_test.dll" () As Long

Private Sub Form_Load()
 Dim plop As Object
 Shell "regsvr32 /s dll_de_test.dll"
 Set plop = CreateObject("Nom_de_la_dll.Bibliotheque_1")
 plop.bob
End Sub
Alors j'ai éssayé et ça marche.
Le seul bleme c'est que comme tu peux le voir, il y a une inscription dans la BDR :?
Elle s'effectue automatiquement des que tu lance l'exe.
Apparement c'est obligatoire avec ce genre de DLL, mais c'est la chiot si le PC est bridé, car il peut interdire l'ecriture, d'apres ce que m'ont dit les copain du forum pure.
Donc danger que l'application ne marche pas sous tous les PC.

Voici tous les fichiers du dessus, les codes sources + exe + Dll
http://www.penguinbyte.com/apps/pbwebst ... Dll_Vb.zip

Le but est d'arriver a faire ecrire le "hello" de la DLL avec pure.
Donc apparement ring me dit que ce n'est pas possible simplement, et qu'il faudrait passer par la lib dishelper.

Mais comment exactement car a part avoir démarré le code tout pret du merlin et avoir trouvé ça tres joli et rigolo, je n'ai pas compris grand chose de cette lib, et je ne vois pas comment appeler cette foutue fausse DLL simplement.

Je vous remercie beaucoup de votre aide.
brossden
Messages : 822
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

@ Kwai...
Pourquoi tiens tu absolument à utiliser une DLL VB avec Pure ?
Denis

Bonne Jounée à tous
Répondre