调用process32firstw 不成功

fdgsDZ 2017-11-30 11:26:11
今天在写一个获取进程句柄的例子时 用了process32firstW函数 发现调用失败 用getlasterror发现返回0x18 对照错误代码说是命令长度不准确 我直接懵了 检查了下代码 实在发现不出什么问题 故来问问各位 出错在什么地方


elseif eax==WM_COMMAND
mov eax,wParam
.if ax==IDC_HUOQU

invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,NULL
.if eax!=INVALID_HANDLE_VALUE
mov hProcessP,eax

.endif
invoke RtlZeroMemory,addr @pe,sizeof PROCESSENTRY32
mov @pe.dwSize,sizeof PROCESSENTRY32
invoke Process32FirstW,offset hProcessP,addr @pe
invoke GetLastError
invoke wsprintf,offset szBuffer,offset szBuf,eax
invoke MessageBox,NULL,offset szBuffer,offset szBuffer,MB_OK


环境是asm32汇编
...全文
541 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-30
  • 打赏
  • 举报
回复
百度搜“invoke Process32FirstW”
fdgsDZ 2017-11-30
  • 打赏
  • 举报
回复
解决了 在看雪看到类似问题 是masm的版本不太对 看了下kernel32.inc 发现里面定义
Process32FirstW PROTO STDCALL :DWORD,:DWORD
IFDEF __UNICODE__
  Process32First equ <Process32FirstW>
ENDIF


Process32NextW PROTO STDCALL :DWORD,:DWORD
IFDEF __UNICODE__
  Process32Next equ <Process32NextW>
ENDIF
却没发现Process32First 然后用masm32v10 直接调用Process32First就好了。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧