我是照搬精易模块的,一大堆报错,下面给出易语言代码和C++代码,求大佬帮忙看看哪儿出错了,我完全看不懂啊
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0513 不能将 "HANDLE" 类型的值分配到 "int" 类型的实体 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 30
错误(活动) E0065 应输入“;” 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 35
错误(活动) E0167 "int" 类型的实参与 "HANDLE" 类型的形参不兼容 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 41
错误(活动) E0167 "int" 类型的实参与 "HANDLE" 类型的形参不兼容 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 44
错误(活动) E0413 不存在从 "Process_information_list" 到 "LPPROCESSENTRY32W" 的适当转换函数 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 44
错误(活动) E0167 "int" 类型的实参与 "HANDLE" 类型的形参不兼容 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 46
警告 C26440 函数 getprocessID 可以声明为 noexcept (f.6)。 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 24
错误 C2440 “=”: 无法从“HANDLE”转换为“int” 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 30
错误 C2146 语法错误: 缺少“;”(在标识符“=”的前面) 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 35
错误 C2065 “=”: 未声明的标识符 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 35
错误 C2143 语法错误: 缺少“;”(在“常数”的前面) 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 35
错误 C2146 语法错误: 缺少“;”(在标识符“Does_it_exist”的前面) 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 36
错误 C2664 “BOOL Process32FirstW(HANDLE,LPPROCESSENTRY32W)”: 无法将参数 1 从“int”转换为“HANDLE” 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 36
错误 C2664 “BOOL CloseHandle(HANDLE)”: 无法将参数 1 从“int”转换为“HANDLE” 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 41
错误 C2664 “BOOL Process32NextW(HANDLE,LPPROCESSENTRY32W)”: 无法将参数 1 从“int”转换为“HANDLE” 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 44
错误 C2664 “BOOL CloseHandle(HANDLE)”: 无法将参数 1 从“int”转换为“HANDLE” 进程名取ID C:\Users\Administrator\Desktop\vS\进程名取ID\进程名取ID\进程名取ID.cpp 46
咋这么多错误??。。。
|
进程_名取ID | 整数型 | | |
进程名 | 文本型 | | | | 是否区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_进程信息 | 精易_进程信息列表 | | | 进程快照 | 整数型 | | | 是否存在 | 整数型 | | |
进程快照 = CreateToolhelp32Snapshot ( #TH32CS_SNAPPROCESS, 0 )如果真 (进程快照 = #INVALID_HANDLE_VALUE )返回 (0 )局_进程信息.dwSize = 296
是否存在 = Process32First (进程快照, 局_进程信息 )判断循环首 (是否存在 ≠ 0 )如果真 (文本比较 (进程名, 到文本 (局_进程信息.进程名称 ), 是否区分大小写 ) = 0 )CloseHandle (进程快照 )返回 (局_进程信息.进程ID )是否存在 = Process32Next (进程快照, 局_进程信息)判断循环尾 ()CloseHandle (进程快照 )返回 (0 )
[C++] 纯文本查看 复制代码 #include <windows.h>
#include <stdint.h>
#include <tlhelp32.h>
#include <stdio.h>
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
struct Process_information_list
{
int dwSize;
int cntUsage;
int processid;
int th32DefaultHeapID;
int th32ModuleID;
int cntThreads;
int th32ParentProcessID;
int pcPriClassBase;
int dwFlags;
char Process_name[260];
};
int getprocessID(string processname)
{
//#define TH32CS_SNAPPROCESS 2
Process_information_list Bureau_Process_information;
int process_snapshot;
int Does_it_exist;
process_snapshot = CreateToolhelp32Snapshot(2, 0);
if (process_snapshot == -1)
{
return 0;
}
Bureau_Process_information.dwSize = 296 // sizeof(PROCESSENTRY32)
Does_it_exist = Process32First(process_snapshot, Bureau_Process_information);
while (Does_it_exist != 0)
{
if (processname == Bureau_Process_information.Process_name)
{
CloseHandle(process_snapshot);
return Bureau_Process_information.processid;
}
Does_it_exist = Process32Next(process_snapshot, Bureau_Process_information);
}
CloseHandle(process_snapshot);
return 0;
}
int main()
{
cout << getprocessID("测试程序11.exe");
return 0;
}
补充内容 (2022-12-26 11:53):
C++代码在评论区 |