Koble et medlem funksjon direkte til C metode deklarert i en header

stemmer
0

Kan jeg koble et medlem funksjon som dette på noen måte? redeclaring metoden som medlem og få det ringe Mmsystem.h metode for å ikke å pakke den?

#include <windows.h>
#include <Mmsystem.h>

  namespace SoundLib {

 public class CWave
 {
 public:
  // WaveIn call
  external UINT waveOutGetNumDevs(VOID);
 };

}
Publisert på 29/12/2009 klokken 22:26
kilden bruker
På andre språk...                            


4 svar

stemmer
1

Sorry, nei, det kan du ikke.

Svarte 29/12/2009 kl. 22:29
kilden bruker

stemmer
1

Nei, du må pakke den. I tillegg har koden din noen feil, for eksempel externali forhold til extern(selv om det var teoretisk likevel), og publicfør din klasse.

Svarte 29/12/2009 kl. 22:30
kilden bruker

stemmer
5

Nei, men du kan bryte den med inlineog til og med staticog håper at kompilatoren er smart nok (som det sannsynligvis er).

class CWave {
public:
    static inline UINT waveOutGetNumDevs(void) { return ::waveOutGetNumDevs(); }
};
Svarte 29/12/2009 kl. 22:31
kilden bruker

stemmer
4

Du må eksplisitt kalle den funksjonen du pakket:

class CWave
{
public:
    static UINT waveOutGetNumDevs(VOID)
    {
        return ::waveOutGetNumDevs();
    }
};

Legg merke til den doble kolon. Siden metoden og den globale funksjonen har samme navn, må du doble kolon for å forhindre uendelig rekursjon.

Svarte 29/12/2009 kl. 22:42
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more