Header of _tcsstr

Header of _tcsstr

本文关键字:tcsstr of Header      更新时间:2023-10-16

您好,我从互联网上复制了一点代码,它使用_tcsstr,我想知道该方法的标头是什么,以便我可以使用它...

HANDLE GetHandleFromProcessPath(TCHAR* szExeName, DWORD& dwPID)
{
HANDLE hExeName = INVALID_HANDLE_VALUE;
HANDLE hSnap = INVALID_HANDLE_VALUE;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE != hSnap)
{
if (Process32First(hSnap, &pe32))
{
do
{
//!!! Attention pe32.szExeFile always return exe file name. not window title.
if (NULL != _tcsstr(pe32.szExeFile, szExeName))
{
hExeName = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pe32.th32ProcessID);
dwPID = pe32.th32ProcessID;
break;
}
} while (Process32Next(hSnap, &pe32));
}
}

return hExeName;
}

所以: 方法_tcsstr(pe32.szExeFile, szExeName)在哪个标头中?

简短回答:#include <tchar.h>

长答案:完全停止使用TCHARTCHAR是一个Microsoft发明,当时代码交叉编译是基于ANSI的Windows 95/98和基于Unicode的Windows NT(2000/XP(是很常见的。 如今,TCHAR是一个相当过时的概念。 默认情况下,面向 Windows 的 C/C++ 项目应该只定义 UNICODE 和 _UNICODE。 不要使用strstrtcsstr,只需使用wcsstr即可。 根据需要将所有TCHARLPTSTR引用替换为wchar_tLPWSTR