Definiowanie własnych sekcji w pliku DLL

Odpowiedz Nowy wątek
2006-10-05 11:58

Rejestracja: 15 lat temu

Ostatnio: 6 lat temu

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.

Pozostało 580 znaków

kwach
2006-10-05 22:26
kwach
0

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

Pozostało 580 znaków

Odpowiedz

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