hur.cn - 华软网

 热门搜索

获得DLL自身路径

  作者:未知    来源:网络    更新时间:2011/6/14
大哥们,现在是这样的!


现在是这样的,我在DLL工程中调用了PlaySound方法,声音文件WAV  与  .DLL在同一个文件夹下。

怎样获得自身DLL的路径,然后调用PlaySound来播放??

PlaySound(TEXT("XXXX\\play.wav), NULL, SND_FILENAME | SND_ASYNC);  第一个参数该怎么写 ????
---华软 网友回答---
TCHAR chPath[MAX_PATH];
GetModuleFileName(NULL,chPath);
CString strPath = chPath;
int nPos = strPath.ReserveFind('\\');//大概是叫这个函数,名字不对可以查MSDN
strPath = strPath.Mid(0,nPos + 1) + "play.wav";//strPath中就是你的wav路径了

---华软网友回复---
直接“play.wav”
---华软网友回复---
引用 2 楼 hustlaofan 的回复:
直接“play.wav”

正解
---华软网友回复---
GetModuleFileName得到绝对路径,然后计算出play.wav绝对路径
---华软网友回复---
GetModuleFileName获取的是exe的路径 非DLL路径
---华软网友回复---
GetModuleFileName
需要提供DLL的模块句柄,设置NULL获得的是是exe模块的路径
---华软网友回复---
theApp.m_hInstance= GetModuleHandleA ( "Dllname.dll");
Dllname.dll换成你的DLL的名称。或者
HMODULE GetMyHandler (void)
{
   HMODULE DllBase;
   GetModuleHandlerEx ( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, 
   reinterpret_cast <LPSTR>(GetMyHandler), &DllBase);
   return DllBase;
}      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。