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:
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 ?