C'est la première fois que j'utilise les news group, j'espère que cela sera
fructueux.
J'ai une question très ciblée.
J'ai écrit un début de programme qui par la suite me permettra de gérer
certaine chose en midi, la première étape consiste à déterminer le nombre de
périphérique MIDI connecté à l'ordi. Pour ça, pas de soucis. Ensuite, il
faut récupérer les noms des différents périphériques pour que ce soit plus
compréhensible à l'utilisation. Et c'est là que le bas blesse. Quand je
récupère ces information là, je me retrouve avec du texte en chinois. Ca
ressemblerais apparemment à un problème d'unicode alors qu'on est en
ascii... Mais les différents texte affiché représente exactement les même
symbole pour chacun des périphériques, ce qui n'est pas très logique.
La partie de code concernée :
Form1(void)
{
InitializeComponent();
//
//TODO: ajoutez ici le code du constructeur
//
numberOfMidiIn = midiInGetNumDevs();
numberOfMidiOut = midiOutGetNumDevs();
int i = numberOfMidiIn - 1;
UINT_PTR uip = (UINT_PTR)&i; // J'ai des doutes également sur mon
pointeur
while (i>=0)
{
MIDIINCAPS midiInCaps; // Est ce que cette initialisation est
correcte?
midiInGetDevCaps(uip,&midiInCaps,sizeof(midiInCaps));
String^ str = gcnew String(midiInCaps.szPname); // Est ce que ceci
est correcte
this->comboBox1->Items->Add(str);
i--;
}
[...]
C'est la première fois que j'utilise les news group, j'espère que cela sera
fructueux.
J'ai une question très ciblée.
J'ai écrit un début de programme qui par la suite me permettra de gérer
certaine chose en midi, la première étape consiste à déterminer le nombre de
périphérique MIDI connecté à l'ordi. Pour ça, pas de soucis. Ensuite, il
faut récupérer les noms des différents périphériques pour que ce soit plus
compréhensible à l'utilisation. Et c'est là que le bas blesse. Quand je
récupère ces information là, je me retrouve avec du texte en chinois. Ca
ressemblerais apparemment à un problème d'unicode alors qu'on est en
ascii... Mais les différents texte affiché représente exactement les même
symbole pour chacun des périphériques, ce qui n'est pas très logique.
La partie de code concernée :
Form1(void)
{
InitializeComponent();
//
//TODO: ajoutez ici le code du constructeur
//
numberOfMidiIn = midiInGetNumDevs();
numberOfMidiOut = midiOutGetNumDevs();
int i = numberOfMidiIn - 1;
UINT_PTR uip = (UINT_PTR)&i; // J'ai des doutes également sur mon
pointeur
while (i>=0)
{
MIDIINCAPS midiInCaps; // Est ce que cette initialisation est
correcte?
midiInGetDevCaps(uip,&midiInCaps,sizeof(midiInCaps));
String^ str = gcnew String(midiInCaps.szPname); // Est ce que ceci
est correcte
this->comboBox1->Items->Add(str);
i--;
}
[...]
C'est la première fois que j'utilise les news group, j'espère que cela sera
fructueux.
J'ai une question très ciblée.
J'ai écrit un début de programme qui par la suite me permettra de gérer
certaine chose en midi, la première étape consiste à déterminer le nombre de
périphérique MIDI connecté à l'ordi. Pour ça, pas de soucis. Ensuite, il
faut récupérer les noms des différents périphériques pour que ce soit plus
compréhensible à l'utilisation. Et c'est là que le bas blesse. Quand je
récupère ces information là, je me retrouve avec du texte en chinois. Ca
ressemblerais apparemment à un problème d'unicode alors qu'on est en
ascii... Mais les différents texte affiché représente exactement les même
symbole pour chacun des périphériques, ce qui n'est pas très logique.
La partie de code concernée :
Form1(void)
{
InitializeComponent();
//
//TODO: ajoutez ici le code du constructeur
//
numberOfMidiIn = midiInGetNumDevs();
numberOfMidiOut = midiOutGetNumDevs();
int i = numberOfMidiIn - 1;
UINT_PTR uip = (UINT_PTR)&i; // J'ai des doutes également sur mon
pointeur
while (i>=0)
{
MIDIINCAPS midiInCaps; // Est ce que cette initialisation est
correcte?
midiInGetDevCaps(uip,&midiInCaps,sizeof(midiInCaps));
String^ str = gcnew String(midiInCaps.szPname); // Est ce que ceci
est correcte
this->comboBox1->Items->Add(str);
i--;
}
[...]
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
[...] je vais essayer de répondre tout de même.
Le problème venait du fait que UINT_PTR n'est pas un pointeur comme son nom
pourrait le laisser supposer. C'est simplement un entier non signé comme
UINT qui représente un ID vers le périphérique audio.
Par contre, j'ai quand même utilisé la boucle 'for' comme conseillé même si
je n'aime pas les boucles autre que 'while'.
[...]
"Olivier Miakinen" a écrit dans le message de groupe de discussion :
4ccafce7$
[COPIE INTÉGRALE]
Le problème venait du fait que UINT_PTR n'est pas un pointeur comme son nom
pourrait le laisser supposer. C'est simplement un entier non signé comme
UINT qui représente un ID vers le périphérique audio.
Par contre, j'ai quand même utilisé la boucle 'for' comme conseillé même si
je n'aime pas les boucles autre que 'while'.
[...]
"Olivier Miakinen" a écrit dans le message de groupe de discussion :
4ccafce7$1@meta.neottia.net...
[COPIE INTÉGRALE]
Le problème venait du fait que UINT_PTR n'est pas un pointeur comme son nom
pourrait le laisser supposer. C'est simplement un entier non signé comme
UINT qui représente un ID vers le périphérique audio.
Par contre, j'ai quand même utilisé la boucle 'for' comme conseillé même si
je n'aime pas les boucles autre que 'while'.
[...]
"Olivier Miakinen" a écrit dans le message de groupe de discussion :
4ccafce7$
[COPIE INTÉGRALE]
Bonjour,
Le 31/10/2010 13:15, Gilbert Dejardin a écrit :
Le problème venait du fait que UINT_PTR n'est pas un pointeur comme son nom
pourrait le laisser supposer. C'est simplement un entier non signé comme
UINT qui représente un ID vers le périphérique audio.
Quelle idée ! C'était donc vraiment un problème spécifiquement Windows,
sans rapport avec le C++. D'un autre côté, ça me rassure : je ne voyais
vraiment pas de raison de passer un pointeur vers un entier censé ne pas
être modifié par la fonction (sinon, la boucle a toutes les chances
d'échouer).
Bonjour,
Le 31/10/2010 13:15, Gilbert Dejardin a écrit :
Le problème venait du fait que UINT_PTR n'est pas un pointeur comme son nom
pourrait le laisser supposer. C'est simplement un entier non signé comme
UINT qui représente un ID vers le périphérique audio.
Quelle idée ! C'était donc vraiment un problème spécifiquement Windows,
sans rapport avec le C++. D'un autre côté, ça me rassure : je ne voyais
vraiment pas de raison de passer un pointeur vers un entier censé ne pas
être modifié par la fonction (sinon, la boucle a toutes les chances
d'échouer).
Bonjour,
Le 31/10/2010 13:15, Gilbert Dejardin a écrit :
Le problème venait du fait que UINT_PTR n'est pas un pointeur comme son nom
pourrait le laisser supposer. C'est simplement un entier non signé comme
UINT qui représente un ID vers le périphérique audio.
Quelle idée ! C'était donc vraiment un problème spécifiquement Windows,
sans rapport avec le C++. D'un autre côté, ça me rassure : je ne voyais
vraiment pas de raison de passer un pointeur vers un entier censé ne pas
être modifié par la fonction (sinon, la boucle a toutes les chances
d'échouer).
In article ,
Olivier Miakinen <om+ wrote:
Pour ceux qui suivent, la norme de C++ actuellement en usage,
c'est C++98. Donc anterieure a C99.
Du coup, ou est-ce qu'on rajoute les extensions C99 ? c'est
pas tres clair.
Et donc (et ca c'est le bout microsoft), il semblerait que
certain editeur ait choisi UINT_PTR pour... representer la
meme chose. Je reconnais que le decoupage en mot est tordu.
Mais uintptr_t n'est pas si clair que ca, il faut vraiment
avoir lu la norme C99 pour savoir.
In article <4cd0429...@meta.neottia.net>,
Olivier Miakinen <om+n...@miakinen.net> wrote:
Pour ceux qui suivent, la norme de C++ actuellement en usage,
c'est C++98. Donc anterieure a C99.
Du coup, ou est-ce qu'on rajoute les extensions C99 ? c'est
pas tres clair.
Et donc (et ca c'est le bout microsoft), il semblerait que
certain editeur ait choisi UINT_PTR pour... representer la
meme chose. Je reconnais que le decoupage en mot est tordu.
Mais uintptr_t n'est pas si clair que ca, il faut vraiment
avoir lu la norme C99 pour savoir.
In article ,
Olivier Miakinen <om+ wrote:
Pour ceux qui suivent, la norme de C++ actuellement en usage,
c'est C++98. Donc anterieure a C99.
Du coup, ou est-ce qu'on rajoute les extensions C99 ? c'est
pas tres clair.
Et donc (et ca c'est le bout microsoft), il semblerait que
certain editeur ait choisi UINT_PTR pour... representer la
meme chose. Je reconnais que le decoupage en mot est tordu.
Mais uintptr_t n'est pas si clair que ca, il faut vraiment
avoir lu la norme C99 pour savoir.