Definiowanie własnych sekcji w pliku DLL

0

Witam,

Problem jest nastepujacy. Tworze plik dll sluzacy do obslugi globalnego hooka CBT. Hook ma dzialac tak, ze bedzie dodawac do wszystkich okien dodatkowe przyciski na pasku tytułowym (obok przyciskow minimalizuj, przywróć i zamknij).

Ponieważ muszę gdzieś przechowywac listę przetworzonych okien, wymyśliłem ze do zdefiniuję sobie w pliku dll dodatkową sekcję .shared, w następujący sposób:

#pragma data_seg(".shared")
#pragma comment(linker, "/section:.shared,rws")

//...definiecje różnych zmiennych

#pragma data_seg()

A potem definicja listy, czyli:

HWND              g_hwndList[MAX_WINDOWS];
LONG               g_nListLength = 0;
CRITICAL_SECTION  g_csListLock;

Sprawdzenie, czy trzeba dodawać buttony do okna wygląda jakoś tak:

EnterCriticalSection(&g_csListLock);

    if(g_nListLength < MAX_WINDOWS)
    {
        for(i = 0; i < g_nListLength; i++)
        {
            if(g_hwndList[i] == hwnd)
                break;
        }

No i teraz jaki jest problem... nie działa mi definiowanie sekcji, za każdym razem otrzymuję komunikat:

warning: /SECTION:.shared ignored; section is missing.

Probowalem definiowac sekcje przez dyrektywe #pragma tak jak podalem wyzej, probowalem tez w pliku def (SECTIONS), za kazdym razem to samo....

Co jest nie tak? Kompilator Pelles-C, probowalem tez w LCC - tam nie bylo ostrzezenia ale sekcji tez nie utworzyl.

0

Zmienne globalne w dll są zawsze wspólne, nic nie trzeba kombinować.
Problem jest tylko z alokowaniem, czyli z pamięć dynamiczna...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0