Konvertierung von void* nach short*



  • Tag @ all,

    Wie bekomm ich eine Konvertierung von void* nach short* hin?

    Ich habe einen Quelltext von VB in C++ übersetzt und jetzt bekomm ich Probleme mit den Datentypen.

    Die Funktion sieht so aus:

    void* dspCallback(void* originalbuffer,void* newbuffer, int length, void* param)
    {
    
            if( BPMDetection != 0)
            {
                    for(int i=0; i< length - 1;i++)
                            BPM_AddSample(BPMDetection, getShortIntFromArray(originalbuffer, i * 2));
            }
    
            return newbuffer;
    };
    

    BPM Detection ist eine Globale Variable mit dem Datentyp void*
    Prototypen der Funktionen sehen so aus:

    void BPM_AddSample(void *bpm, float sample);
    float getShortIntFromArray(signed short *buffer, int pos);

    Bin für jede Hilfe dankbar.



  • Hallo

    grundsätzlich so

    BPM_AddSample(BPMDetection, getShortIntFromArray(reinterpret_cast<short*>(originalbuffer), i * 2));
    

    Allerdings kann ich dir nicht sagen, ob das auch wirklich im Sinne des Erfinderss ist. Mir kommt es schon Suspekt vor, das eine Funktion namens GetShort... einen float zurückgeben soll.

    bis bald
    akari



  • Danke, hat funktioniert.


Log in to reply