首页 技术 正文
技术 2022年11月12日
0 收藏 771 点赞 2,797 浏览 711 个字
  1. // test.cpp : Defines the entry point for the console application.
  2. //
  3. #include “stdafx.h”
  4. #include <windows.h>
  5. #include <crtdbg.h>
  6. /// 在C++工程中main函数之前跑代码的廉价方法
  7. /// 利用全局变量可以赋可变初值的事实
  8. /// mainCRTStartup() => _cinit() => 全局变量(静态, 普通)赋初值
  9. extern “C” int foo(void);
  10. extern “C” int foo1(void);
  11. /// 执行顺序和全局变量声明顺序相同
  12. /// 先执行foo1, 再执行foo();
  13. static int gs_iTest = foo1();
  14. int g_iTest = foo();
  15. int main(int argc, char* argv[])
  16. {
  17. printf(“&main = %p\n”, &main);
  18. getchar();
  19. return 0;
  20. }
  21. extern “C” int foo(void)
  22. {
  23. /// 执行不带CRT函数的代码
  24. MessageBox(NULL, “foo before main”, “test”, MB_OK);
  25. return 0;
  26. }
  27. extern “C” int foo1(void)
  28. {
  29. /// 执行不带CRT函数的代码
  30. MessageBox(NULL, “foo1 before main”, “test”, MB_OK);
  31. return 0;
  32. }

效果

在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

http://blog.csdn.net/lostspeed/article/details/49748951

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905