Bonjour à tous,

Je développe une dll contenant des classes et des objets.
Une fonction qui crée un objet dynamique doit retourner le pointeur de l'objet + autres info.
Voici la structure déclarée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct {
    HSMixer G_Mixer;
    HSSTREAM G_Source;
    HANDLE G_Objet;
} WB_PLAYLIST;
Puis la méthode de la classe qui doit retourner la structure en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
class Play_list {
 
private :
    WB_PLAYLIST m_str_playlist;
....
 
public:
    WB_PLAYLIST* Creer();
....
};
 
WB_PLAYLIST* Play_list::Creer() {
....
 
    this->m_str_playlist.G_Mixer = this->m_mixer;
    this->m_str_playlist.G_Source = this->m_source;
    Play_list *const id_objet = this;
    this->m_str_playlist.G_Objet = static_cast<HANDLE>(id_objet);
 
    return &this->m_str_playlist;
}
Dans la structure m_str_playlist je récupère bien les infos mixer et source que je souhaite mais dans id_objet j'ai un doute.
Je ne suis pas certain de récupérer le pointeur sur l'objet. Pour info, je récupère bien une valeur (ex:5726840) qui peut être une adresse.

Compte-tenu que mon niveau en C++ n'est pas très élevé, je vous sollicite une nouvelle fois pour me donner votre avis sur le code présenté.
L'utilisation qui est faite du static_cast permet elle de récupérer l'adr de l'objet ? Comment vérifier ?
Merci de votre aide précieuse.