Using System::AnsiString class
Using System::AnsiString class
我正试图从以下答案导入代码:获得完整的运行进程列表(Visual c++)
bool FindRunningProcess(AnsiString process) {
/*
Function takes in a string value for the process it is looking for like ST3Monitor.exe
then loops through all of the processes that are currently running on windows.
If the process is found it is running, therefore the function returns true.
*/
AnsiString compare;
bool procRunning = false;
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE) {
procRunning = false;
} else {
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32)) { // Gets first running process
if (pe32.szExeFile == process) {
procRunning = true;
} else {
// loop through all running processes looking for process
while (Process32Next(hProcessSnap, &pe32)) {
// Set to an AnsiString instead of Char[] to make compare easier
compare = pe32.szExeFile;
if (compare == process) {
// if found process is running, set to true and break from loop
procRunning = true;
break;
}
}
}
// clean the snapshot object
CloseHandle(hProcessSnap);
}
}
在Phil的回答中,他正在使用System::AnsiString
类,我不确定如何将其包含在我的项目中,即它是已安装包的一部分还是我需要下载并包含它?
这个问题的扩展:是否有另一个替代品,我可以用它来实现与AnsiString相同的事情?
我对这段代码的最终目标是修改它,以便我可以得到正在运行的进程的当前列表,我正在寻找一个特定的进程终止,如果它正在运行。我尝试使用ce::string
,但由于pe32.szExeFile
是TCHAR [260]
类型,我无法将其传递给以下ce::string process_name;
的ce::string
声明(这可能是他使用System::AnsiString
的原因)。
我假设pe32.szExeFile
将返回进程名,所以我想将其与另一个具有特定进程名的声明字符串进行比较。
好的,所以,AnsiString
是什么并不清楚;你已经假设它是Embarcadero System::AnsiString
类,坦率地说,这看起来是一个合理的假设。
我不会去试图获得它,尽管。我会专注于编写标准代码,切换到std::string
/std::wstring
(酌情)。将作者的代码改编为可移植代码应该几乎是微不足道的。您必须尝试并阅读代码中使用的函数的文档,以了解哪些可以工作,哪些不能。它看起来像System::AnsiString
几乎或完全兼容std::string
,但你只是不知道,直到你尝试它。
我再怎么强调都不过分,你不要踏入你的时间机器,在1950年打开它,带着一个装满指针和过时的c字串比较函数的午餐盒。我真的不明白为什么有人会建议这样做。
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- "Undefined class"作为is_base_of的论据
- 如何将class.cpp和class.hpp编译为一个.o文件
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使用"derived input class"创建派生类?
- 错误:"Left of getValue must have class/struct/union"
- ' class a : b ' 和 ' class a : public b ' 之间的继承类不同
- Pybind11 Class Definition
- 在C++中使用没有合作伙伴Class/Cpp文件的头文件是否实用
- C2011 'CMemDC':Visual Studio 2019中的'class'类型重新定义
- TypeError: [c++ addon class] 不是构造函数
- C++ class template
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- Clearing Class Foo with new(pFoo) Foo()
- C++ class vs a library
- 继承类时"invalid use of incomplete type ‘class tree_node_t’"
- 使用"class"关键字,后跟未声明的标识符
- Using System::AnsiString class