Gå til innhold

Fredrik90

Medlemmer
  • Innlegg

    228
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Fredrik90

  1. hei...

     

    denne her er riktig ikke sant?

    CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC,
                                   IID_IDirectMusicPerformance8, (void**)&dmusicPerformance)

     

    når jeg bruker den så returnerer den en error. ikke syntax men når programet kjører. så er den riktig?

     

    mvh. Fredrik

     

    edit: sånn her ser hele ut.

         if (FAILED(CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC,
                                    IID_IDirectMusicLoader8, (void**)&dmusicLoader)))
        {
             MessageBox(hwnd, "Unable to create the IDirectMusicLoader8 object!\nPress OK to exit",
                        "ERROR!", MB_OK);
             return false;
        }

     

    edit 2: ved og komentere ut

     

    return false

     

    så har jeg funnet ut at det er denne her som forårsaker feil.

     

         if (FAILED(dmusicPerformance->InitAudio(NULL, NULL, NULL, DMUS_APATH_DYNAMIC_STEREO, 64,
                                     DMUS_AUDIOF_ALL, NULL)))
        {
             MessageBox(hwnd, "Unable to initialize audio! Press OK to exit", "ERROR!", MB_OK);
             //return false;
        }

     

    eller der kommer ikke meldingsboksen opp, det bare klikker.... så noen som vet? feilen over er fortsatt feil for og si det sånn.

  2. hei igjen....

     

    nå får jeg opp dette her.

    First-chance exception at 0x00405157 in Flight-Real.exe: 0xC0000005: Access violation reading location 0x00000000.
    Unhandled exception at 0x00405157 in Flight-Real.exe: 0xC0000005: Access violation reading location 0x00000000.
    The program '[1768] Flight-Real.exe: Native' has exited with code 0 (0x0).

     

    er det noen mulighet for at jeg kan ved og se på disse talene si noe om når i koden det skjer. tidlig, sent, midt i osv. eller er dette helt umulig?

     

    mvh. Fredrik

  3. ok. bruker et eksempel fra en bok jeg har.

     

    #define INITGUID                   // we use GUID's with DMusic
    
    ////// Includes
    #include <windows.h>          // standard Windows app include
    #include <dmusicc.h>               // DirectMusic includes
    #include <dmusici.h>
    #include <d3d9types.h>             // for D3DVECTOR
    #include <cguid.h>                 // for GUID_NULL
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    
    // //// DirectMusic variables
    IDirectMusicLoader8 *dmusicLoader = 0;              // the loader
    IDirectMusicPerformance8 *dmusicPerformance = 0;    // the performance
    IDirectMusicSegment8 *dmusicSegment = 0;            // the segment
    IDirectMusicAudioPath *dmusic3DAudioPath = 0;       // the audiopath
    IDirectSound3DBuffer *ds3DBuffer = 0;               // 3d buffer
    IDirectSound3DListener *ds3DListener = 0;           // 3d listener
    
    DS3DBUFFER dsBufferParams;                             // 3d buffer properties
    DS3DLISTENER dsListenerParams; 
    
    
    bool InitDirectXAudio(HWND hwnd)
    {
        char pathStr[MAX_PATH];       // path for audio file
        WCHAR wcharStr[MAX_PATH];
    
        // create the loader object
        if (FAILED(CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC,
                                    IID_IDirectMusicLoader8, (void**)&dmusicLoader)))
        {
             MessageBox(hwnd, "Unable to create the IDirectMusicLoader8 object!\nPress OK to exit",
                        "ERROR!", MB_OK);
             return false;
        }
    
        // create the performance object
        if (FAILED(CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC,
                                    IID_IDirectMusicPerformance8, (void**)&dmusicPerformance)))
        {
             MessageBox(hwnd, "Unable to create the IDirectMusicPerformance8 object!\nPress OK to exit",
                        "ERROR!", MB_OK);
             return false;
        }
    
        // intialize DirectMusic and DirectSound
        if (FAILED(dmusicPerformance->InitAudio(NULL, NULL, NULL, DMUS_APATH_DYNAMIC_STEREO, 64,
                                     DMUS_AUDIOF_ALL, NULL)))
        {
             MessageBox(hwnd, "Unable to initialize audio! Press OK to exit", "ERROR!", MB_OK);
             return false;
        }
    
        // create a standard 3D audiopath
        if (FAILED(dmusicPerformance->CreateStandardAudioPath(DMUS_APATH_DYNAMIC_3D,
                                                              64, TRUE, &dmusic3DAudioPath)))
        {
             MessageBox(hwnd, "Unable to create standard 3D audiopath! Press OK to exit",
                        "ERROR!", MB_OK);
             return false;
        }
    
        // get the 3D buffer in the audiopath
        if (FAILED(dmusic3DAudioPath->GetObjectInPath(0, DMUS_PATH_BUFFER, 0, GUID_NULL, 0,
                                                      IID_IDirectSound3DBuffer,
                                                      (void**)&ds3DBuffer)))
        {
             MessageBox(hwnd, "Unable to retrieve 3D buffer from audiopath! Press OK to exit",
                        "ERROR!", MB_OK);
             return false;
        }
    
        // get the 3D buffer parameters
        dsBufferParams.dwSize = sizeof(DS3DBUFFER);
        ds3DBuffer->GetAllParameters(&dsBufferParams);
    
        // set the new 3D buffer parameters
        dsBufferParams.dwMode = DS3DMODE_HEADRELATIVE;    // relative to the listener
        ds3DBuffer->SetAllParameters(&dsBufferParams, DS3D_IMMEDIATE);
    
        // retrieve the listener from the audiopath
        if (FAILED(dmusic3DAudioPath->GetObjectInPath(0, DMUS_PATH_PRIMARY_BUFFER, 0, GUID_NULL, 0, 
                                                     IID_IDirectSound3DListener,
                                                     (void**)&ds3DListener)))
        {
             MessageBox(hwnd, "Unable to retrieve the listener! Press OK to exit",
                        "ERROR!", MB_OK);
             return false;
        }
    
        // get the listener parameters
        dsListenerParams.dwSize = sizeof(DS3DLISTENER);
        ds3DListener->GetAllParameters(&dsListenerParams);
    
        // set position of listener
        dsListenerParams.vPosition.x = 0.0f;
        dsListenerParams.vPosition.y = 0.0f;
        dsListenerParams.vPosition.z = 0.0f;
        ds3DListener->SetAllParameters(&dsListenerParams, DS3D_IMMEDIATE);
    
        // retrieve the current directory
        GetCurrentDirectory(MAX_PATH, pathStr);
    
        // convert to unicode string
        MultiByteToWideChar(CP_ACP, 0, pathStr, -1, wcharStr, MAX_PATH);
    
        // set the search directory
        dmusicLoader->SetSearchDirectory(GUID_DirectMusicAllTypes, wcharStr, FALSE);
    
        return true;
    }
    
    // LoadSegment()
    // desc: load a segment from a file
    bool LoadSegment(HWND hwnd, char *filename)
    {
        WCHAR wcharStr[MAX_PATH];
    
        // convert filename to unicode string
        MultiByteToWideChar(CP_ACP, 0, filename, -1, wcharStr, MAX_PATH);
    
        // load the segment from file
        if (FAILED(dmusicLoader->LoadObjectFromFile(CLSID_DirectMusicSegment,
                                                    IID_IDirectMusicSegment8,
                                                    wcharStr,
                                                    (void**)&dmusicSegment)))
        {
             MessageBox(hwnd, "Audio file not found! Press OK to exit",
                        "ERROR!", MB_OK);
    
             return false;
        }
    
        // set the number of repeats for the segment to infinite
        dmusicSegment->SetRepeats(DMUS_SEG_REPEAT_INFINITE);
    
        // download the segment's instruments to the audiopath
        dmusicSegment->Download(dmusic3DAudioPath);
    
        return true;
    }
    
    // PlaySegment()
    // desc: start playing a segment
    void PlaySegment(IDirectMusicPerformance8* dmPerf, IDirectMusicSegment8* dmSeg)
    {
        // play the segment on the next beat
        dmPerf->PlaySegmentEx(dmSeg, NULL, NULL, DMUS_SEGF_DEFAULT, 0,
                              NULL, NULL, dmusic3DAudioPath);
    }
    
    // StopSegment()
    // desc: stop a segment from playing
    void StopSegment(IDirectMusicPerformance8* dmPerf, IDirectMusicSegment8* dmSeg)
    {
        // stop the dmSeg from playing
        dmPerf->StopEx(dmSeg, 0, 0);
    }
    
    // CloseDown()
    // desc: shutdown music performance
    void CloseDown(IDirectMusicPerformance8* dmPerf)
    {
        // stop the music
        dmPerf->Stop(NULL, NULL, 0, 0);
    
        // close down DirectMusic
        dmPerf->CloseDown();
    }
    
    // Set3DSoundParams()
    // desc: sets the 3d buffer parameters
    void Set3DSoundParams(float doppler, float rolloff, float minDist, float maxDist)
    {
        // set doppler and rolloff parameters
        dsListenerParams.flDopplerFactor = doppler;
        dsListenerParams.flRolloffFactor = rolloff;
    
        if (ds3DListener)
             ds3DListener->SetAllParameters(&dsListenerParams, DS3D_IMMEDIATE);
    
        // set minimum and maximum distances
        dsBufferParams.flMinDistance = minDist;
        dsBufferParams.flMaxDistance = maxDist;
    
        if (ds3DBuffer)
             ds3DBuffer->SetAllParameters(&dsBufferParams, DS3D_IMMEDIATE);
    }
    
    // Set3DSoundPos()
    // desc: updates position of sound source (accepts OpenGL coordinates)
    void Set3DSoundPos(IDirectSound3DBuffer* dsBuff, float x, float y, float z)
    {
        // we use -z because DirectX and OpenGL z-axes are flipped
        if (dsBuff != NULL)
        {
             dsBuff->SetPosition(x, y, -z, DS3D_IMMEDIATE);
        }
    }
    

     

    sånn. litt mye kode.

     

    mvh. Fredrik

     

    Edit: Tror jeg fant det ut. er det den

    CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC,
                                    IID_IDirectMusicPerformance8, (void**)&dmusicPerformance)

    som lager interfacen?

     

    Edit 2: da skal det vel ikke være noen feil?

  4. hei igjen...

     

    lurer bare på om dette kan funke.eller er det dette som lager feilen?

     

    IDirectMusicLoader8 *dmusicLoader = 0;              // the loader
    IDirectMusicPerformance8 *dmusicPerformance = 0;    // the performance
    IDirectMusicSegment8 *dmusicSegment = 0;            // the segment
    IDirectMusicAudioPath *dmusic3DAudioPath = 0;       // the audiopath
    IDirectSound3DBuffer *ds3DBuffer = 0;               // 3d buffer
    IDirectSound3DListener *ds3DListener = 0;           // 3d listener

     

    håper på et raskt svar :thumbup:

     

    mvh. Fredrik

  5. hei..

     

    Har lyst til og vite hvordan jeg får lest hvemmapper som er i en mappe.

     

    F.eks i mappen "Aircraft" kan det være mange under mapper som jeg ikke vet hvem er. f.eks "C-117", "C-130", "F-16" osv. jeg vet ingnen av disse navnene. hvordan får jeg da til at programet kan søke opp alle mappe navnene og så¨vise de til meg. betyr at jeg kan lagre de inn i en tabbel f.eks med alle navnene og så lese ut derifra.

     

    Noen løsninger til dette?

     

    mvh. Fredrik

  6. vil du ha outputet. ?

     

    edit:

          Found __mbschr
           Referenced in LIBCMT.lib(setenv.obj)
           Loaded LIBCMT.lib(mbschr.obj)
       Searching C:\Programfiler\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
         Found _stricmp
           Referenced in main.obj
           Loaded OLDNAMES.lib(stricmp.obj)
    LINK : fatal error LNK1104: cannot open file 'libcp.lib'

     

    dette er de siste linjene tror de er mest interesnage.

  7. hei....

     

    takker for det programet kjetil. funket flott. det var match på MD5.

     

    edit: vet noen om 'libcp.lib' skal følge med vc++ eller platform/directx sdk`en?

    kompilatoren finner plutselig ikke den. så jeg lurer bare på om noen vet hvor jeg skal se. har søkt etter den uten å finne noe.

  8. Hold kjeft, saboi.

     

    .. som sakt tidligere får ingen andre feil medligner enn de jeg har visst dere.

    Hvem snakker du til?

     

    ..man ass.. komunikasjons-avdelingen er på ferie forstår jeg..

     

    1. Her du testet dette:

     

    * Finne ut hva linkeren din faktisk driver med! Er det noe krøll med IDEet som gjør at ting ikke stemmer, eller som gjør at pragmaene "overrides" eller noe slikt sprøtt?

    (jeg tenker her på kompiler-logg)

    Ja/nei? + kommentar (eventuellt hvorfor ikke)

     

    2.Har du testet dette:

    Finne ut om det er, eller om noe går galt med bibliotek-filene. Virus hos deg? Har Microsoft oppdatert DX-SDK'en nylig og ødelagt noen av filene når de lastet det opp på webserveren dems (blir du viderekoblet til et speil (går det an å se dette?)? stemmer da MD5?)?

    Ja/nei? + kommentar (eventuellt hvorfor ikke)

     

    3. Har du testet dette:

    Sjekk hva som er i biblioteket (.dll-fila) -- sjekk om symbolene linkeren savner er der!

    Ja/nei? + kommentar (eventuellt hvorfor ikke)

     

    4. Har du testet/sammenlignet med det kjetil7 viser?

    Ja/nei? + kommentar (eventuellt hvorfor ikke)

    1: så vidt jeg vet nei. vet heller ikke hvor dette skrus på/av.

     

    2:hva mener du med et speil? hvordan får jeg til den MD5 greia.

     

    3: hva som er i bibloteket? hvordan gjør jeg det. går vel ikke ann å åpne en .dll fil.

     

    4:har nesten likt oppsett bare at det er programfiler og ikke Program Files bruker også x86 skulle jeg kanskje bruke x64 eller hva det står.

     

     

    sånn håper dette hjelper.

×
×
  • Opprett ny...