Aya - Di 09.03.10 22:18
Ich glaub ich hab es etwas schwierig erklärt, deswegen hier mal ein beispiel:
Header:
CPP Datei:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| //n.cpp
int n() { static int sn = 0; return ++sn; }
static int a = n(); static int b = n(); static int c = n(); static int d = n(); |
Jetzt erstell ich ein simples commandline tool:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| #include <n.h>
int main() { printf("%i", n()); return 0; } |
So, ich habe jetzt also 2 cpp dateien und 1 header.
Wenn ich alles drei zusammen in einem Project compiliere und dann starte, bekomme ich als ausgabe wie erwartet "5".
Wenn ich jetzt n.cpp zu einer statischen-library compiliere und diese dann in meinem projekt einbinde (also die n.cpp aus dem projekt entferne und die erzeugte n.lib einbinde), und dann starte bekomme ich als ergebnis nur "1"... also a, b, c und d wurden nicht initialisiert...
Hat irgendwer eine idee?
Aya~
PS: Hab es jetzt als crosspost im DelphiGL-Forum ->
http://www.delphigl.com/forum/viewtopic.php?f=4&t=9075