Помогите с библиотекой TCHAR.h c++
Я подключил инклюд <tchar.h>
в туториале человек писал
но у меня это не получается
и я заменил код на этот
мне почемуто не выдает результат который должен
подскажите это из за того что я изменил код или из за каких-то других строк кода
код GetModuleBaseAddress :
DWORD GetModuleBaseAddress(TCHAR* lpszModuleName, DWORD pID) {
DWORD dwModuleBaseAddress = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID); // make snapshot of all modules within process
MODULEENTRY32 ModuleEntry32 = { 0 };
ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
if (Module32First(hSnapshot, &ModuleEntry32)) //store first Module in ModuleEntry32
{
do {
if (_tcscmp(ModuleEntry32.szModule, lpszModuleName) == 0) // if Found Module matches Module we look for -> done!
{
dwModuleBaseAddress = (DWORD)ModuleEntry32.modBaseAddr;
break;
}
} while (Module32Next(hSnapshot, &ModuleEntry32)); // go through Module entries in Snapshot and store in ModuleEntry32
}
CloseHandle(hSnapshot);
return dwModuleBaseAddress; Ставишь отладку на строку
if (_tcscmp
и смотришь - идёт перечисление модулей или не идёт. Если вообще не идёт - косяк в том месте, где открываешь процесс. Если идёт - косяк в том, что неправильно указал имя dll-ки.
Касательно tchar - он включается не для того, чтобы ему явным образом пихать Lстроки, а для того, чтобы их запаковывать в макросы, работающие и с короткими, и с длинными строками.
TCHAR FirstModule[] = _T("client.dll");
спасибо
Судя по DWORD и MODULEENTRY32 код работает только для 32 битных систем.