请问为什么hwin是窗口A的句柄,但我调用GetModuleFileName((HMODULE)::GetWindowLong(hwin,GWL_HINSTANCE),str,190);后str却存放着窗口B的进程路径?(窗口A是窗口B以外的某个窗口。但调用函数后由str得知窗口B竟是调用GetModuleFileName的Visual C++窗口啊,晕。)
解决方案 »
- 如何获得界面线程创建的对话框句柄指针
- RichEdit怎样实现特定字符串的超链接?
- win98重起问题?为什么我的命令没起作用?
- 我这里有一些任务:图像采集,角度采集,图像匹配,计算位置,不知道如何设置线程和定时器,完成任务?
- 如何将数据库中货币类型的数据取出并在List Control控件中按两位小数格式显示出来。
- 在什么情况下才使用CDocument类和CView类?
- 看一看,瞧一瞧得分拉!
- 高分求助zmodem开发程序包、类,up有分!!,提供线索有分!!(我一定加足300分)
- 非客户区用指定颜色填充,拖动时出问题
- how to convert a string to a struct? use memcpy() or ???
- ORACLE 10G中,如何实现SQL SERVER中的TOP功能?
- 高分请教:web服务器程序问题!!!!!!
error C2065: 'GetModuleFileNameEx' : undeclared identifier加了#include <Psapi.h> 和在Setting里加了Psapi.lib也不行——
fatal error C1083: Cannot open include file: 'Psapi.h': No such file or directory
另外似乎不用加psapi.lib
那我也不知道怎样才能用这个Ex函数了,好像听说是VC6版本比较旧就有这样的问题。。致Janlex:
如果传NULL进去,我认为str获得的将会是调用这个函数的进程对应的路径。我试过也的确如此。致element_cn:
我已经重新把GetModuleFileName()的说明从头到尾认真地看了一遍,但还是不知道应该怎样用才对。我也试过GetModuleFileName((HMODULE)::GetClassLong(hwin,GCL_HMODULE),str,190);但str出来却是“C:\WINDOWS\system32\USER32.dll”。我真不知道应该怎样传这第一个参数才能使用正常了,还望指教。
你的Platform SDK的版本太低了,升级一下吧。
或者使用函数指针的方式来调用GetModuleFileNameEx。
DWORD GetModuleFileNameEx(
HANDLE hProcess, // handle to process
HMODULE hModule, // handle to module
LPTSTR lpFilename, // path buffer
DWORD nSize // maximum characters to retrieve
);