今天在论坛上看有人问关于playsound函数相对路径的问题,正好,我也不会,那就看一看吧,呵呵。看了帖子之后,我豁然开朗,哦,原来这就是相对路径啊。接着我编写了一个名为playsound.exe的小程序,在程序中调用123.wav这个文件。先说明一下playsound.exe的路径。
playsound.exe的路径D:/Backup/我的文档/C-Free/Projects/playsound/MinGW3.4.5
如果123.wav的路径为D:/Backup/我的文档/C-Free/Projects/playsound/MinGW3.4.5
那么123.wav相对于playsound.exe的路径就是123.wav
如果123.wav的路径为D:/Backup/我的文档/C-Free/Projects/playsound
那么123.wav相对于playsound.exe的路径就是../123.wav (../代表上一层目录)
如果123.wav的路径为D:/Backup/我的文档/C-Free/Projects
那么123.wav相对于playsound.exe的路径为../../123.wav (../../代表上两层目录)
如果123.wav的路径为D:/Backup/我的文档/C-Free/Projects/playsound/MinGW3.4.5 /music
那么123.wav相对于playsound.exe的路径为music/123.wav
如果123.wav的路径为D:/Backup/我的文档/C-Free/Projects/playsound/MinGW3.4.5 /music/pop
那么123.wav相对于playsound.exe的路径为music/pop/123.wav
即:PlaySound(TEXT("xxzj.wav"),NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
如果在上一层目寻即:PlaySound(TEXT("../xxzj.wav"),NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
如果在下一层目寻即:PlaySound(TEXT("下层的文件夹名 /xxzj.wav"),NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
目寻是相对于目标可执行程序的。。。。
看了上面的例子,我想大家应该明白了。
一句话,想知道123.wav相对于playsound.exe的路径,你心里面就应该想着把playsound.exe所在的目录作为参考,我怎么才能找到123.wav呢?把握住这个就ok了。
源文档 <http://hi.baidu.com/zenmeyoushini/blog/item/48c9fbf5b2530a67dcc47400.html>