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

Windows Discussion :

Création Dll avec VC++ 2008 express en C


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Création Dll avec VC++ 2008 express en C
    Bonjour,
    J'ai récupéré une vieille DLL en langage C mais qui ne marche pas et je souhaite la faire marcher, voici le source :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    // midi_cb.c   dll to handle midi callback function
    
    #include <windows.h>
    #include <mmsystem.h>
    #include "midi_cb.h"
    #include "midiout.h"
    
    int FAR PASCAL LibMain (HANDLE hInstance, WORD wDataSeg,
        WORD wHeapSize, LPSTR lpszCmdLine)
    {
        return 1 ;
    }
    
    void FAR PASCAL _export WEP (int nParameter)
    {
        return ;
    }
    
        // outline of a MIDI output callback function
    void CALLBACK _export MidiOutCall (HMIDIOUT hMidiOut, UINT wMsg, 
        DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
    {
        switch (wMsg)
        {
            case MOM_CLOSE: // midiOutClose() called
                break ;
            case MOM_DONE:  // midiOutLongMsg() completed
                break ;
            case MOM_OPEN:  // midiOutOpen() called
                break ;
        }
        return ;
    }
    
        // high-resolution timer callback function - outputs MIDI    
    void CALLBACK _export TimeCallback (UINT nTimerID, UINT wMsg, 
        DWORD dwUser, DWORD dw1, DWORD dw2)           
    {
        int             i ;
        MIDISONG FAR *  lpMidiSong ;
            // pointer to the MIDI data is passed as dwUser parameter
        lpMidiSong = (MIDISONG FAR *) dwUser ;
            // start from last MIDI event played    
        for (i = (int) lpMidiSong->dwLastEvent ; 
            i < (int) lpMidiSong->dwEvents; i++)  
        {                   // look for matching time (assumes 1ms clock)
            if (lpMidiSong->lpMidiData[i].dwTimeMs == lpMidiSong->dwTime)
            {               // play MIDI data if time matches
                midiOutShortMsg (lpMidiSong->hMidiOut, 
                    lpMidiSong->lpMidiData[i].dwMidiData) ;
                lpMidiSong->dwLastEvent = (DWORD) i ;
            }
            if (lpMidiSong->lpMidiData[i].dwTimeMs > lpMidiSong->dwTime)
                break ;     // quit looking if next event is ahead
        }
        if (lpMidiSong->dwLastEvent >= lpMidiSong->dwEvents - 1)
            timeKillEvent (nTimerID) ; // stop timer if at end
        else
            lpMidiSong->dwTime++ ;     // otherwise advance ms counter
    }
    Est-ce que cla vous inspire ?

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Beuh! C'est pour Win16, ça...

    Déjà, sans les en-têtes, on ne peut pas faire grand-chose. Ensuite, corriger la façon d'employer dllexport, corriger les déclarations (FAR et PASCAL ne veulent plus rien dire, certains DWORD vont devoir être remplacés par des DWORD_PTR)...

    Et aussi, je n'ai aucune idée de comment cette bibliothèque est supposée être utilisée. Mais ça semble être lié à ceci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/10/2008, 01h35
  2. DLL et vb 2008 Express edition
    Par Alopia dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/09/2008, 10h46
  3. Création DLL Visual Studio 2008 : Chargement impossible
    Par Bleys dans le forum Visual Studio
    Réponses: 0
    Dernier message: 07/08/2008, 11h03
  4. [WIN32] Dll avec VC++ 2005 Express
    Par Bayard dans le forum MFC
    Réponses: 4
    Dernier message: 04/05/2006, 21h17
  5. [Kylix] Création de DLL pour se connecter
    Par aroundzefur dans le forum EDI
    Réponses: 1
    Dernier message: 16/03/2006, 09h58

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