Regisztráció Elfelejtett jelszó

forras + bugfix

lukit

Tisztelt Clownfish!

Elkerhetem a dll aktualis forraskodjat? Az uw-n csak a regi van fent sajnos.

Nalam sajna mindig lefagy az ami, ha betoltom a dll-t, ennek probaltam utanajarni a regi verzioval (registry mokolas megvolt). Betettem egy log-olast a forrasba es megvilagosodtam: az EnumProc.cpp-ben a CProcessModuleIterator::First()-ben lehet egy kis gebasz, ott kerul vegtelen ciklusba a tortenet. A while cilus addig tart, amig az EnumProcessModules igaz visszateres utan beallitja az m_count-ot. Ha azonban az EnumProcessModules nem ad vissza igazt, azaz nem sikerult, akkor orokke ott ragad a program, mert az m_count-ba baromi nagy szam kerul. Javaslatom a hibajavitasra: while ciklus felesleges, az if igaz aga maradhat, a hamisat meg rendesen lekezelni, valahogy igy:

...

if (m_hProcess) {

DWORD nalloc = 1024;

del ete [] m_hModules;

m_hModules = new HMODULE [nalloc];

if (EnumProcessModules(m_hProcess, m_hModules, nalloc*sizeof(DWORD), &m_count))

{

m_count /= sizeof(HMODULE);

}

else

{

m_count = 0;

}

m_current = 0;

}

...

A Next() maradhat, az jol vegzi a dolgat, ha az m_count es m_current is 0. Mas reszeit nem neztem a programnak, hogy mi van ebben az esetben, annyira nem latom meg at.

Amugy nalam a 4-es pid-u System process-nel adott vissza a EnumProcessModules hamisat.

Tisztelettel: lukit