Frage : PlaySound fällt auf Windows 7 aus

Ich habe eine ziemlich große VS2008/MFC Anwendung, die herum für ziemlich lange Zeit gewesen ist.    Das Programm hat Funktionalität, Töne spielen zu lassen (using PlaySound) wenn bestimmte Ereignisse auftreten.   Es wird selten verwendet und aufrichtig prüfe ich selten alles, mit ihm zu tun.  So beachtete ich nicht, dass zu einem bestimmten Zeitpunkt das PlaySound beendigte, mit Windows 7. zu arbeiten.      Ich kann eine aktuelle Version des Programms nehmen und es ist auf Windows Xp adaequat, aber nichts geschieht auf Windows 7.   Ich kann kleine Beispielapps erhalten, um in W7 using die gleichen WAV Akten o.k. zu arbeiten, also weiß ich, dass dieses nicht in Verbindung stehende mit dem Code der WAV Akte itself.

The im Allgemeinen dieses ist:
PlaySound (_T („C:\ \ Windows \ Media \ \ Tada.wav“), NULL, SND_FILENAME | SND_ASYNC);

What, das ich bis jetzt getan habe, ist:
1) versuchte verschiedene Kombinationen der SND_* Konstanten. Das
2), das ein anderes, Gewinde herzustellen versucht wurde und es dort using SND_SYNC
3) durchzuführen, versuchte, so viele Abhängigkeiten auf äußeren Bibliotheken möglich zu entfernen.
4) versuchte spielende WAV Akten, die mit Windows kommen, angenommenen Namen.   Nichts arbeitet in dieser Anwendung, aber tut im Test applications.

As, das ich sagte, ich kann Test apps verursachen, die o.k. arbeiten.    Wenn ich den Ton using SND_SYNC spiele, fällt es aus, aber Sie können GetLastError nicht verwenden () um herauszufinden warum.   Using SND_ASYNC verursacht PlaySound immer zum return
true, aber kein Ton kommt heraus.   Ich bin mit diesem wirklich ratlos.   Offenbar es gibt etwas, das ich tue, um das Problem zu verursachen, aber an diesem Punkt kann ich nicht irgendwie überprüfen dieses zu fördern.   Hat jemand irgendeine Idee, was ich tun könnte, um dieses zu veranlassen aufzutreten?

Thanks!

Antwort : PlaySound fällt auf Windows 7 aus

Für Ihre Hilfe danke.     Wir stellten dar, dass heraus, was die Ausgabe war und ich sie hier teile, da sie eine sehr subtile Ausgabe war, die herauf das Beeinflussen einiger anderer Bereiche unseres Programms beendete.    Wir benutzen eine 3. Partei Bibliothek benanntes LeadTools, um Bildverarbeitungs einiges zu tun.    Wir haben es nicht seit 2001 verbessert.   Es fällt aus, dass es sich nicht richtig benahm, als neue Gewinde benannt wurden.   Als ein von ihrem DLLs das DLL_THREAD_ATTACH empfing, würde es irgendeinen Code durchführen, der in einigen Fällen sprengte.    Wir waren in der Lage zu entfernen, dass der Teil von LeadTools und jetzt Sachen wieder adaequat sind.
Weitere Lösungen  
 
programming4us programming4us