吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 598|回复: 3
收起左侧

[求助] windows api

[复制链接]
wuyingjie2022 发表于 2023-10-17 15:47
#include <iostream>
#include <windows.h>
#include <psapi.h>
int main()
{
        HMODULE lpmodule[1024] = {0};
        DWORD nume = 0;
        LPSTR   lpBaseName=NULL;
        int i = 0;
        HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS,TRUE,5456);
        if (handle == NULL)
        {
                printf("失败");
                getchar();
        }
        int ss = EnumProcessModules(handle, lpmodule, sizeof(lpmodule), &nume); // 遍历所有模块
        while (lpmodule[i])
        {
                int s = GetModuleBaseName(handle,lpmodule[i],lpBaseName,sizeof(lpBaseName));  //得到指定模块的名称
                s = GetLastError(); //错误码 87  参数错误
                printf("%s\n", lpBaseName);
                i++;
        }
}
这个程序  是遍历指定进程的模块并且打印出模块名称
程序编译没有问题  就是运行结果错误   调试后发现是  GetModuleBaseName  这个函数失败   错误码为87   参数错误    请大神们指出错误

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shieep 发表于 2023-10-17 16:55
lpBaseName参数错误
银.桑 发表于 2023-10-17 18:04
你提供的lpBaseName是一个指针,要么你申请一块空间并指向这个块空间,要么你写成char BaseName[1024]。如果你申请空间的话,第四个参数就不能用sizeof(lpBaseName),要写你实际申请的空间大小
bester 发表于 2023-10-17 18:17
[C++] 纯文本查看 复制代码
	HMODULE lpmodule[1024] = { 0 };
	DWORD nume = 0;
	wchar_t basename[1024] = { 0 };
	int i = 0;
	HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, TRUE, GetCurrentProcessId());
	if (handle == NULL)
	{
		printf("失败");
		getchar();
	}
	int ss = EnumProcessModules(handle, lpmodule, sizeof(lpmodule), &nume); // 遍历所有模块
	while (lpmodule[i])
	{
		int s = GetModuleBaseName(handle, lpmodule[i], basename, 1024);  //得到指定模块的名称
		s = GetLastError(); //错误码 87  参数错误
		wprintf(L"%s\n", basename);
		i++;
	}


因为我设置的是unicode环境 所以默认是调用宽字节,所以basename用的是wchar_t,如果你想用窄字节,就用char basename[1024],然后在 GetModuleBaseName这里改成 GetModuleBaseNameA即可
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表