IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Assemblage .Net (Bass.Net.Dll)


Sujet :

WinDev

  1. #41
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    re Damien,
    pour ton problème avec les callbacks en Dotnet, je vais te mettre sur la voie :

    je remet mon code de rendu de forme d'ondes d'un mp3 mais cette fois-ci en lançant le rendu en background et en appelant la callback "MaWaveProcédure" qui va s'exécuter pendant le rendu (elle ne fait que tracer la progression du rendu)
    voici la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    PROCEDURE MaWaveProcédure(framesDone est un entier,framesTotal est un entier,elapsedTime est un TimeSpan,RenduTerminé est un booléen)
     
    Trace(framesDone)
    et voici mon code modifié qui utilise cette procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Spectre est un WaveForm dynamique
    g est un Graphics dynamique
    dcim1 sont des entiers système
    prc est un Rectangle(1,1,SC_Fiche.Image1..Largeur,SC_Fiche.Image1..Hauteur)
    Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_LATENCY, Null)
    Spectre = allouer  un WaveForm("F:\Kalimba.mp3",DotNetDélégué("MaWaveProcédure","WAVEFORMPROC"),Null)
    //Spectre = allouer  un WaveForm("F:\Kalimba.mp3")
    Spectre.FrameResolution = 0.1
    Spectre.ColorBackground =  Color.Black
    Spectre.ColorLeft = Color.White
    Spectre.ColorRight = Color.White
    Spectre.ColorLeftEnvelope = Color.Transparent
    Spectre.ColorRightEnvelope = Color.Transparent
    //on lance le rendu en background
    Spectre.RenderStart(Vrai, BASSFlag.BASS_DEFAULT)
    //on attend que le rendu soit terminé
    TANTQUE PAS Spectre.IsRendered
    Multitâche(-10)
    FIN
    g = Graphics::FromHwnd(Handle("SC_Fiche.Image1"))
    Spectre.CreateBitmap(g,prc, -1, -1, Vrai)
    dcim1=dDébutDessin(SC_Fiche.Image1)
    AppelDLL32("gdi32","BitBlt", dcim1 , 0 , 0 ,SC_Fiche.Image1..Largeur ,SC_Fiche.Image1..Hauteur ,g.GetHdc() , 0 , 0 , 0x00CC0020)
    g.dispose()
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  2. #42
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonjour jurassic pork,

    Merci pour ton aide précieuse je viens de tester çà fonctionne nikel ! Je vais essayé pour les fonctions d'enregistrements maintenant.

    EDIT : Je reviens à l'aide mdrr alors j'ai suivi ta méthode voici ce que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    _myRecProc est un RECORDPROC dynamique
    Rec_channel est un entier
     
    _myRecProc = allouer RECORDPROC(DotNetDélégué("MyRecording","RECORDPROC"))
    Rec_channel = Bass::BASS_RecordStart(11025, SEL_Canaux, BASSFlag.BASS_RECORD_PAUSE, _myRecProc, IntPtr.Zero)
    Alors windev me renvoi : Mauvais paramètre pour le constructeur de la classe RECORDPROC. pour cette ligne > _myRecProc = allouer RECORDPROC(DotNetDélégué("MyRecording","RECORDPROC"))

    Donc j'ai essayé : _myRecProc = allouer RECORDPROC(DotNetDélégué("MyRecording","RECORDPROC"), Null)
    mais là ça plante directement le wdtest.exe :s

    Ce qui est bizarre, c'est que dans la doc il ne demande qu'un seul paramètre :s

    oups ! ma procédure au cas ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PROCEDURE MyRecording(nHandle est un entier, nBuffer est un IntPtr, nLenght est un entier, nUser est un IntPtr)
     
    RENVOYER Vrai

Discussions similaires

  1. Quel langage entre vb.net c#.net c++.net java ?
    Par heeedi dans le forum Débuter
    Réponses: 7
    Dernier message: 13/12/2008, 21h53
  2. Participez à la F.A.Q .NET ASP.NET Delphi.NET
    Par Jérôme Lambert dans le forum Contribuez
    Réponses: 0
    Dernier message: 05/12/2008, 00h00
  3. Participez à la F.A.Q .NET ASP.NET VB.NET
    Par Jérôme Lambert dans le forum Contribuez
    Réponses: 0
    Dernier message: 05/12/2008, 00h00
  4. [visual.net] creer une DLL du projet - question cruciale
    Par igorzup dans le forum Visual Studio
    Réponses: 3
    Dernier message: 09/11/2005, 11h30
  5. Réponses: 16
    Dernier message: 22/03/2005, 21h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo