<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">We have been trying to track down an issue where we experience crashes on some versions of Windows 8 when calling the Cocotron method play of NSSound. After digging around in the Cocotron source we discovered that the play function ends up calling the win32 function mciSendString. <div><br></div><div>Next we tried to remove Cocotron from the equation to see if we would still experience the same crash so we created the following two tests:</div><div><br></div><div>First, we try to open and play an MP3 file by making an external-call to mcsSendStringA:</div><div><br></div><div><div>(ccl::with-cstr (cstr  "open C:<a href="smb://boing.mp3">\\boing.mp3</a> type MPEGVideo alias 0")</div><div>  (ccl::with-cstr (cstr2  "play 0 from 0")</div><div>    (external-call "mciSendStringA" :address cstr :address +null-ptr+ :int 0 :int 0 :<INT>)</div><div>    (external-call "mciSendStringA" :address cstr2 :address +null-ptr+ :int 0 :int 0 :<INT>)))</div></div><div><br></div><div>This causes a crash during the call to open the MP3 (the first external call) with no errors reported to any of our consoles or the Windows event viewer.</div><div><br></div><div>Next we run the same experiment with a wav file and all works well and we hear the correct sound:</div><div><br></div><div><div>(ccl::with-cstr (cstr  "open C:<a href="smb://ding.wav">\\ding.wav</a> type waveaudio alias 0")</div><div>  (ccl::with-cstr (cstr2  "play 0 from 0")</div><div>  (external-call "mciSendStringA" :address cstr :address +null-ptr+ :int 0 :int 0 :<INT>)</div><div>  (external-call "mciSendStringA" :address cstr2 :address +null-ptr+ :int 0 :int 0 :<INT>)))</div></div><div><br></div><div>Finally we wrote a little C++ program:</div><div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; "><font size="2"><br></font></div><div><font>#include <Windows.h></font></div><div><font>#include <iostream></font></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; "><font size="2"><br></font></div><div>int main()</div><div>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>mciSendString(TEXT("open C:<a href="smb://boing.mp3">\\boing.mp3</a> type MPEGVideo alias 0"), NULL, 0, 0);</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>mciSendString(TEXT("play 0 from 0"), NULL, 0, 0);</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>Sleep(5000);</div><div></div><div>}</div></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; "><font size="2"><br></font></div><div>This program runs fine (even with the mp3) so it seems that the issue does not lie directly with the win32 function. </div><div><br></div><div>If any Windows 8 users could try out our test code with CCL and let us know if they experience the same issue that would be of great help (I have included the sound files which you need to just put at c:\).</div><div><br></div><div>So far we have only been able to reproduce this problem on OEM version of Windows 8 (it never seems to happen with Windows 8 Pro).</div><div><br></div><div>More generally does anyone have any clues about what might going on that would cause this to crash with ccl but not from C++?</div><div><br></div><div>Thanks a lot,</div><div><br></div><div>--Mike</div><div><br></div><div><br></div><div><br></div><div></div></body></html>