C++ classes: 02 侯捷 - C++ Startup 揭密:C++ 程序的生前和死后
Published:
侯捷 - C++ Startup 揭密:C++ 程序的生前和死后. Also, see reference1
1. 前言,如何自定 Startup code
- Bibliography
- 《程序员的自我修养——链接、装载与库》,俞甲子/石凡/潘爱民 著,电子工业出版社
- 侧重Linux
- 《程序员的自我修养——链接、装载与库》,俞甲子/石凡/潘爱民 著,电子工业出版社
- 自定Startup code(Entry-Point Symbol)
windows (use VC 6.0)
#include <windows.h> int MyStartup(void) { int a = 10; HANDLE crtHeap = HeapCreate(HEAP_NO_SERIALIZE, 0x010, 4000 * 1024); int *p = (int *)HeapAlloc(crtHeap, HEAP_ZERO_MEMORY, 0x010); int i, j; for (i = 0; i < 100; i++) { // int j; for (j = 0; j < 100; j++, p++) { *p = i * 100 + (j + 1); } } MessageBoxA(NULL, p, "abcd", MB_OK); return 0; }
Linux (compile with $ gcc entrypoint.c -e blabla, then blabla will be called instead of main)
#include <stdio.h> int blabla() { printf("Yes it works!\n"); exit(0); } int main() { printf("not called!\n"); }