调用PlaySound函数的发音有关问题

调用PlaySound函数的发音问题
一很简单的程序,代码如下:
C/C++ code

LPCWSTR lpcStrName = TEXT(".\\audio.wav");
bool flag = PlaySound(lpcStrName,NULL,SND_FILENAME | SND_SYNC);



编译通过后,生成的exe同一目录下有一audio.wav文件,运行exe,程序不会播放audio.wav,而只会响一声系统出错声

修改代码如下,只是简单的将音频路径换成绝对路径,就可以正常发声:
C/C++ code

LPCWSTR lpcStrName = TEXT("D:\\audio.wav");
bool flag = PlaySound(lpcStrName,NULL,SND_FILENAME | SND_SYNC);



我觉得应该是路径的问题,不过audio.wav和exe在同一文件下,应该是没问题的啊
或者是TEXT宏转换的问,但第二段代码可正常执行,出错在这的可能性也不大,请高手指教

另外:我用playsound播放某一路径下的音频,播放后,我会对该音频修改,修改后的音频与原文件名路径名称都一样,然后第二次调用时为什么不能发音,只是响一声系统出错声(而第一次是可以正常播放的),问题很诡异,太困惑了,求解!!!!!!

------解决方案--------------------
TCHAR szFilePath[MAX_PATH + 1]; 
GetModuleFileName(NULL, szFilePath, MAX_PATH); 
获得当前程序的运行路径。