promenne uvnitr DLL knihovnyZkousel jsem si hrat s temi hooky a programovanim DLL knihoven. Pro zacatek bych si chtel udelat program, co posloucha, jestli uzivatel kliknul a za kazdy klik udela v nejakem souboru tecku.
Udelal jsem tedy DLL knihovnu, ktera obsahuje funkci:
LRESULT __declspec(dllexport)__stdcall CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
kterou system vola pri nejake dalosti mysi. Taky mam na zacatku souboru nadefinovanou globalni promennou:
char fn[260];
kde bych si chtel uchovavat jmeno souboru, do ktereho se zapis provadi. Jenze kdyz tuhle promennou uvnitr MouseProc zmenim, pri zpracovani nasledujici udalosti uz je semtam obsah promenny jiny (jako kdyby byla najednou neinicializovana). Konkretne se to stava, kdyz uzivatel prepne proces (okno). Vypada to, jako kdyby ta dll knihovna mela pro kazdy proces oddelenou sadu (kopii) svych promennych, ktere jsou navzajem nezavisle. Je to vubec mozny? Zkousel jsem tu promennou deklarovat jako statickou, hodit ji dovnitr #pragma data_seg(".SHARDAT") a tak dal, ale porad se to chova stejne. Pouzival VS C++ 2005. |