Comment puis-je convertir un système :: IO :: ^ à un flux LPCSTR pour PlaySound?
Question
Je suis en train de Embed puis lire un fichier .wav dans un C ++ / CLI app, mais tous les exemples que je l'ai vu qui PlaySound
utilisation sont en VB. Je ne vois pas comment obtenir froma Stream^
au LPCSTR qui nécessite PlaySound:
System::IO::Stream^ s = Assembly::GetExecutingAssembly()->GetManifestResourceStream ("Ping.wav");
LPCSTR buf = s->????;
PlaySound(buf, NULL, SND_ASYNC|SND_MEMORY|SND_NOWAIT);
Je suppose que je besoin d'une sorte de magie horrible conversion de mémoire .net.
La solution
Utilisez le système :: médias :: SoundPlayer classe à la place. Il a une propriété Stream, cédez votre variable "s", puis appeler la méthode Play ().
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow