
Plugins WinAMP (In & Out)
J'ai un hollandais chez qui ce fourbi ci-dessous fonctionne parfaitement sous VB6.
VB6
PB DLL
VB6
Code : Tout sélectionner
Declare Function Test Lib "Le_Nom_De_La_Dll.dll" () As String
Sub Main()
Dim x As Long
Dim MaChaine As String
x = 1000000
For a = 0 To x
MaChaine = Test
Next
End Sub
Code : Tout sélectionner
ProcedureDLL.I Test()
ProcedureReturn SysAllocStringByteLen_("MESSAGE DE LA DLL OK", 20)
EndProcedure
Page 2 de ce sujet
Rajoute les deux pauses MsgBox avant et après le test de 1 million de boucles qui marche nickel, ouvre le gestionnaire de tâches et vérifie que la mémoire ne perd pas de sa virginité.
Si c'est le cas, on attaque la DLL Winamp illico!
RéponseOllivier a écrit :Tu devrais faire un ultime test:
Sous VB, fais le petit programme suivant:
1) D'abord, mets un message box quelconque (pour faire une pause en début de programme)
2) Puis, fais une boucle pour appeler la fonction DLL (celle qui te retourne le message "Message DLL Ok") 1 million de fois.
3) Enfin, remets un message box pour faire une pause de fin.
MdR!ça plante l'application![]()
Rajoute les deux pauses MsgBox avant et après le test de 1 million de boucles qui marche nickel, ouvre le gestionnaire de tâches et vérifie que la mémoire ne perd pas de sa virginité.
Si c'est le cas, on attaque la DLL Winamp illico!
En fait j'ai trouvé la source du problème et c'était de ma faute.
J'étais partis du principe de prendre les fonctions du code pour les plugins et les adapter Procedure->ProcedureDLL. J'ai tenté de réécrire le code en appelant en interne dans la DLL les fonctions exportés en ProcedureDLL. Apparemment, y a plus de plantage nulle part ; mieux encore, les fonctions qui ne renvoyait rien fonctionne parfaitement.
Conclusion, le code est tout à fait fonctionnel maintenant.
Une fonction inexistante me manque pourtant celle de récupérer toutes les extensions des plugins d'un dossier et de les proposer à l'ouverture. Une fonction existe pour récupérer les extensions pour le plugin en cours mais les tests que j'ai pu faire pour faire une boucle avec les plugins plante le programme. À mon avis il faudrait recréer une fonction en natif dans la DLL mais je patauge sur ce point.
Pour l'erreur que tu reporte ça m'éclate aussi lol, peut être que j'avais fais une erreur quelque part, je ne suis pas parfait
J'étais partis du principe de prendre les fonctions du code pour les plugins et les adapter Procedure->ProcedureDLL. J'ai tenté de réécrire le code en appelant en interne dans la DLL les fonctions exportés en ProcedureDLL. Apparemment, y a plus de plantage nulle part ; mieux encore, les fonctions qui ne renvoyait rien fonctionne parfaitement.
Conclusion, le code est tout à fait fonctionnel maintenant.
Une fonction inexistante me manque pourtant celle de récupérer toutes les extensions des plugins d'un dossier et de les proposer à l'ouverture. Une fonction existe pour récupérer les extensions pour le plugin en cours mais les tests que j'ai pu faire pour faire une boucle avec les plugins plante le programme. À mon avis il faudrait recréer une fonction en natif dans la DLL mais je patauge sur ce point.
Pour l'erreur que tu reporte ça m'éclate aussi lol, peut être que j'avais fais une erreur quelque part, je ne suis pas parfait

.:NY152:.
@Cpl.Bator Je ne cherche pas les plugins de Winamp, je les ai dans un répertoire. Ce que je cherche, c'est avoir toutes les extensions de fichiers supportées par ces plugins. Une fonction existe mais elle implique et charger les plugins d'entrée et de sortie à chaque fois et ce faisant ça plante.
@Olivier c'était pas tout à fait ça ^^
@Olivier c'était pas tout à fait ça ^^
.:NY152:.
Ah ok...
ça complique le binz...
Je vois ceci:
A mon avis, il faut le transformer en cela:
Comme ça, ça laisse la place à 8 Plugins (de 0 à 7). Il faut ensuite remettre à jour toutes les fonctions en ajoutant en argument, le numéro de Plug-In, éventuellement mixer les infos...
Bref, sans Winamp et ses plug-in, je m'avoue incapable de t'aider intelligemment...
Ollivier
ça complique le binz...
Je vois ceci:
Code : Tout sélectionner
Global *winamp_out_head.winamp_out_module
Global *winamp_in_head.winamp_in_module
Code : Tout sélectionner
Global Dim *winamp_out_head.winamp_out_module(7)
Global Dim *winamp_in_head.winamp_in_module(7)
Bref, sans Winamp et ses plug-in, je m'avoue incapable de t'aider intelligemment...
Ollivier
Il vaudrait mieux que tu crées un sujet dans la section Débutants pour savoir qui possède Winamp avec Plug-In pour pouvoir faire les bonnes transformations, maintenant que le problème VB6 est réglé! Car, ne connaissant pas assez le sujet sur Winamp, même le fait de t'écrire le petit code que j'ai écrit pourra t'être inutile.