vc维的理解 init A() main() ~A() uninit ctr f5 - longkai/lab.newgxu.cn GitHub Wiki
01.#include <stdio.h>
02.#include <stdlib.h>
03.#include <malloc.h>
04.
05.class A
06.{
07.public:
08. A()
09. {
10. printf("A()\n");
11. }
12. ~A()
13. {
14. printf("~A()\n");
15. }
16.};
17.
18.A a;
19.
20.bool b = false;
21.int foo()
22.{
23. if (!b)
24. {
25. printf("init now!\n");
26. b = true;
27. }
28. else
29. {
30. printf("uninit now\n");
31. }
32. return 0;
33.}
34.
35.
36.typedef int (__cdecl *_PVFV)();
37.#pragma section(".CRT$XIU", long, read)
38.#pragma section(".CRT$XPU", long, read)
39.__declspec(allocate(".CRT$XIU")) _PVFV mgt_startup[] = { foo };
40.__declspec(allocate(".CRT$XPU")) _PVFV mgt_exit[] = { foo };
41.
42.int main()
43.{
44. printf("main.!\n");
45. //exit(1);
46. return 0;
47.}