Verknüpfen Sie eine Member-Funktion direkt an C-Methode in einem Header deklariert

stimmen
0

Kann ich eine Member-Funktion wie diese in irgendeiner Weise verknüpfen? erneut deklariert werden, das Verfahren als Mitglied und erhalten sie die mmsystem.h Methode aufrufen müssen, um nicht wickeln?

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

  namespace SoundLib {

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

}
Veröffentlicht am 30/12/2009 um 01:26
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
1

Leider nein, können Sie nicht.

Beantwortet am 30/12/2009 um 01:29
quelle vom benutzer

stimmen
1

Nein, Sie müssen es wickeln. Darüber hinaus hat den Code einige Fehler, wie zum Beispiel im externalVergleich zu extern(obwohl das war theoretisch jedenfalls) und publicvor der Klasse.

Beantwortet am 30/12/2009 um 01:30
quelle vom benutzer

stimmen
5

Nein, aber Sie können es wickeln mit inlineund auch staticund hoffen , dass Compiler klug genug ist (was wahrscheinlich ist).

class CWave {
public:
    static inline UINT waveOutGetNumDevs(void) { return ::waveOutGetNumDevs(); }
};
Beantwortet am 30/12/2009 um 01:31
quelle vom benutzer

stimmen
4

Sie müssen explizit die Funktion aufrufen Sie eingewickelt:

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

Beachten Sie den Doppelpunkt. Da Ihre Methode und die globale Funktion die gleichen Namen haben, müssen Sie den doppelten Doppelpunkt unendliche Rekursion zu verhindern.

Beantwortet am 30/12/2009 um 01:42
quelle vom benutzer

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