请教
我在atl工程文件中通过_Module.GetModuleInstance()得到模块的HINSTANCE ;
然后通过GetModuleFileName得到这个模块当前所在路径
怎么最后得到确跟实际的不一样
假设当前模块的实际路径为
d:\工作项目\视频监控相关模块\监控采集卡(com)\解决方案\test\Debug\AIS_Algorithms.dll
而得到的确是
d:\工作项目\视频监~1\监控采~3\解决方案\test\Debug\AIS_AL~1.DLL
请问这是什么回事?
代码如下
HINSTANCE ins = _Module.GetModuleInstance();
TCHAR moduleName[MAX_PATH] = {0};
::GetModuleFileName( ins , moduleName , sizeof(moduleName) );
我在atl工程文件中通过_Module.GetModuleInstance()得到模块的HINSTANCE ;
然后通过GetModuleFileName得到这个模块当前所在路径
怎么最后得到确跟实际的不一样
假设当前模块的实际路径为
d:\工作项目\视频监控相关模块\监控采集卡(com)\解决方案\test\Debug\AIS_Algorithms.dll
而得到的确是
d:\工作项目\视频监~1\监控采~3\解决方案\test\Debug\AIS_AL~1.DLL
请问这是什么回事?
代码如下
HINSTANCE ins = _Module.GetModuleInstance();
TCHAR moduleName[MAX_PATH] = {0};
::GetModuleFileName( ins , moduleName , sizeof(moduleName) );
解决方案 »
- 关于请教结构体显示内容的问题。。。
- 如何获得编辑框可显示的第一行行数
- 新手问如何将内容写到网页的 textarea里面
- 一如既往,2004年10月份专家版
- TreeView怎么显示+(未展开),-(已展开)和虚线?
- 使用SetMapMode的问题
- 如何更改dialog的背景色和设置图片背景
- 请进,为什嬷我的程序会死循环????
- VC++2008写ocx(activex),localhost调试无误,外部访问则“(ocx名)对象不支持此属性或方法”
- 制作PDF文件
- Motion JPEG 格式中的jpg数据中可以带Exif?我找不到FFE1(exif的maker)
- 大家好,java想转网络安全编程,有什么好的途径?
如果这样
TCHAR moduleName[MAX_PATH] = {0};
::GetModuleFileName( NULL, moduleName , sizeof(moduleName) );
得到路径就没有任何问题
只不过这得到是.exe的全路径即为
d:\工作项目\视频监控相关模块\监控采集卡(com)\解决方案\test\Debug\test.exe
而如果用
HINSTANCE ins = _Module.GetModuleInstance();
TCHAR moduleName[MAX_PATH] = {0};
::GetModuleFileName( ins , moduleName , sizeof(moduleName) );
我要得到的是
这段代码得到dll全路径结果就
d:\工作项目\视频监~1\监控采~3\解决方案\test\Debug\AIS_AL~1.DLL请问一下
我要得到
d:\工作项目\视频监控相关模块\监控采集卡(com)\解决方案\test\Debug\AIS_Algorithms.dll
这样子的怎么弄?
把NULL换成你dll的句柄。就是DllMain的第一个参数。
TCHAR moduleName[MAX_PATH] = {0};
::GetModuleFileName( ins , moduleName , sizeof(moduleName) );
_Module.GetModuleInstance(); 这个不就得到的是DLL的句柄
高手再解答一下
char _strPath[MAX_PATH] = "\0";
::GetModuleFileName(NULL, _strPath, MAX_PATH); AfxMessageBox(_strPath); char _strLongPath[MAX_PATH] = "\0";
GetLongPathName(_strPath, _strLongPath, MAX_PATH); AfxMessageBox(_strLongPath);
谢谢上楼的回答
不过不是我想要的结果
你那个还是得到exe的全路径
不是exe调用的dll路径
HINSTANCE ins = _Module.GetModuleInstance();
TCHAR moduleName[MAX_PATH] = {0};
::GetModuleFileName( ins , moduleName , sizeof(moduleName) ); TCHAR _strLongPath[MAX_PATH] = "\0";
::GetLongPathName(moduleName, _strLongPath, MAX_PATH);你还真要送到嘴边。
你的工作目录和exe文件的输出目录在哪里??