jesli juz chcesz pisac tak jak Spoon to uzyj lstrcpy() - zawsze exe bedzie troche mniejsze
ale ja polecam moja metode bo po co konstruktorze wywolywac strcpy (albo lstrcpy) za kazdym razem jak jest tworzony obiekt kiedy mozna to zrobic raz :)
2.
- jesli chodzi o puste okienko to pod Visual C++ da sie wycisnac 2KB
- jesli chodzi o MinGW to u mnie puste okno wychodzi 4KB (wersja 2.9.5 - np razem z pakietem Dev-C++ v. 4.9.6.0)
ja bym Ci polecil taki zestaw:
najnowszy Dev-C++ (v. 4.9.8.7) i do tego mingw 3.3.1 (niestety nie jest jak na razie dostarczany wraz z Dev-C++)
w takim zestawie puste okno zajmuje zdaje sie 6KB
pozniej mozna to spakowac upx-em - duze programy lub FSG - bezkonkurencyjny do pakowania malych programow
(w programie ktory pisze teraz, do czasu kiedy po kompilacji otrzymywalem rozmiar exe mniejszy niz do 55 KB wygrywal FSG)
ok, znalazlem co chcialem, rozwiazaniem jest jedna linijka:
int extra_global __attribute__ ((section ("Shared"), shared)) = 0 ;
wymagalo to uaktualnienia gcc w Dev-C++ do 3.3.1
a wszystko dziala elegancko
jak poniższy kod (z Visuala) zapisac poprawnie w gcc?
#pragma data_seg("Shared")
volatile int zmienna extra_global = 0 ;
#pragma data_seg()
#pragma comment(linker, "Section:Shared, RWS")
rozwiazanie podałem na dole strony
1)
uzywaj CreateDialog a nie Dialogbox
2)
nie bardzo wiem o co chodzi
3)
int i = SendMessage(hListBox, LB_GETCOUNT, 0, 0) ;
if (i == LB_ERR)
return 0 ;
for (int j = 0 ; j < i ; j++)
{
SendMessage(hListBox, LB_GETTEXT, (WPARAM) j, (LPARAM) bufor) ;
ZapiszDoPliku(bufor) ;
}