Windows — Чтение черного списка из текстового файла в Stack Overflow

Мне действительно нужен мой драйвер для чтения (строка за строкой) некоторых программ, которые будут в черном списке.

_T («bannedfile.exe») — это то место, где мне нужно поместить программу, занесенную в черный список.

Как я могу заставить _tcscmp читать текстовый файл построчно?

(Это делает сравнение между главной программой, которая загружает драйвер, и находящейся в черном списке)

BOOL ProcessBlackList() {
TCHAR modulename[MAX_PATH];
GetModuleFileName(NULL, modulename, MAX_PATH);
PathStripPath(modulename);
if (_tcscmp(modulename, _T("bannedfile.exe")) != 1) {
return 0;
}
else {
return 0x2;
}
}

-1

Решение

Так нельзя сделать.

Вы должны быть в состоянии использовать getline для чтения файла построчно, а затем передавать строки в _tcscmp. Должно работать что-то вроде этого:

wchar_t const name[] = L"bannedfile.exe";
std::wifstream file(name);

std::wstring line;
while (std::getline(file, line)
{
if (_tcscmp(modulename, line.c_str()) == 0) {
return TRUE; //module is in list
}
}
return FALSE; // module is not in list

Отсутствие копии VS, чтобы проверить ее в данный момент.

Если вы столкнулись с проблемами разбора Unicode, потому что кодировка файла не совсем соответствует ожидаемой по умолчанию, прочитайте следующее: Что делает std :: wifstream :: getline с моим массивом wchar_t? Он обрабатывается как байтовый массив после возврата getline

0

Другие решения