gcc -O2 优化,到底做了什么? 程序都不能正常运行了。

一个项目开发到维护有五年时间了。

今天在项目中加入了一段代码后,软件启动后,窗口显示不出来了。

加入的代码:

HMODULE hDll_kernel32 = LoadLibrary("kernel32.dll"); // 加载 kernel32.dll
    if(hDll_kernel32)
    {

        FARPROC proc = GetProcAddress(hDll_kernel32, "SetDllDirectoryA"); //导出 DLL 库函数地址
        if(proc)
        {
            //printf("在 kernel32.dll 找到 SetDllDirectoryA() \n");

            typedef BOOL (*func_SetDllDirectoryA)(LPCSTR);

            func_SetDllDirectoryA _SetDllDirectoryA = (func_SetDllDirectoryA)proc;  //函数指针

            int status = _SetDllDirectoryA(app_folder_path); //将目录添加到用于查找应用程序DLL的搜索路径
            printf("_SetDllDirectoryA()->status:%d\n", status);
        }

        FreeLibrary(hDll_kernel32); //释放
        hDll_kernel32 = NULL;
    }

取消 -O2 选项后,就可以正常启动软件。

这段代码有毒?

原文地址:https://www.cnblogs.com/personnel/p/12424952.html

时间: 2024-12-24 11:09:44

gcc -O2 优化,到底做了什么? 程序都不能正常运行了。的相关文章

GCC 编译优化指南

前言 网上关于编译优化的文章很多,但大多零零散散,不成体系,本文试图给出一个完整和清晰的优化思路,同时提供在实践中如何进行优化的详尽参考.但是,在介绍所有优化知识之前首先引用LFS-Book中的一句忠告:"使用编译器优化得到的小幅度性能提升,与它带来的风险相比微不足道".你还要进行优化吗? %@&#=^%~*# ... OK, crazy guy! Let's Go!! 在继续之前,作者还是奉劝各位:如果追求极致的优化,那么它将是一件既耗时又麻烦的事情,你会陷入无止尽的测试.测

GCC 编译优化指南【转】

转自:http://www.jinbuguo.com/linux/optimize_guide.html 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布. 无担保:本文作者不保证作品内容准确无误,亦不承担任何由于使用此文档所导致的损失. 自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件. 名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留作者署名并注明出处. 其他作品 本文作者十分愿意与他人分享劳动成果,如果你对我的其他

asp优化:对你的ASP程序作负载测试

asp优化:对你的ASP程序作负载测试 介绍 当我们从传统的CS结构的应用程序转到当前流行的Web空间的程序时,我们发现我们在尝试跟上不断增长的可测性需求和性能要求.其中一个最大的挑战在于如何确定你的程序能最多支持多少个用户的访问.你如何面对这一挑战?设定清晰的性能目标并使用Web压力测试工具会是一个好的开始. 这篇文章将会介绍如何对你的ASP程序进行压力测试,同时将会介绍微软的压力测试工具- Web Application Stress test Tool (WAS).在接下来的一章,你将会学

MySQL实战 | 01-当执行一条 select 语句时,MySQL 到底做了啥?

原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了,对于问题的原因仍不知所以. 本文开始,记录学习<MySQL实战45讲>专栏的过程. 也许有人会问,你记录有什么意义?直接看专栏不就行了吗?你这不是啃别人的剩骨头吗? 是的,这个系列,我只是基于专栏学习,但是我会尽量从我的角度搞懂每一个知识点,遇到不懂得也会将知识点进行拆分. 我知道关注公众号的小伙

O2优化的实质

重点:如果使用多个-O选项(包含或不包含级别编号),则最后一个选项是有效的选项.------------ ------------ ------------例如:#pragma GCC optimize(2)#pragma G++ optimize(2)这就是传说中的氧气优化 ------------ -O.-O1:优化编译需要更多时间,并且大型函数需要更多内存.使用-O选项,编译器会尝试减小代码尺寸减少执行时间,不执行任何需要大量编译时间的优化. -O选项打开了如下优化标志: -fauto-i

先做一个“小程序”——关于微信应用号的六大猜想

先做一个“小程序”——关于微信应用号的六大猜想 9月 21 日,苦等了9个多月的时间,应用号终于与我们见面了,命名为「小程序」. 01 为什么推出小程序? 考虑到小程序对整个APP市场的影响,毫无疑问会对现有的APP生态带来一定的冲击.但是,之所以推出小程序,最直接的原因可能是为了构建和扩充微信生态链,让微信更具开放性. 如我们所知,目前微信公众号分为三类: • 服务号,连接人和商品,目前很多电商企业,以及在微信端提供产品和服务的企业都用服务号. • 订阅号,微信官方的定位是阅读,连接人和资讯的

怎样不做“孬种”程序猿

拥有丰富的开发经验,曾担任多年的技术总监,带领团队开发多个电子商务平台.教务管理系统等.热衷主流PHP技术.熟悉lamp站点解决方式.讲课风格:逻辑严谨,条理清晰,对技术要点把握准确,注重培养学员的逻辑思维能力. 数据显示:眼下全球5000万互联网站点中.有60%採用的是PHP技术.80%的国内互联网站点使用PHP开发. 可见,PHP已然成为全球超热的互联网技术之中的一个. 传智播客作为一家有着丰富教学经验的IT培训机构,在PHP的培训上推陈出新,提出了"不做孬种程序猿"的口号,PHP

柯南君:教你如何对待大型网站平台的性能优化? 之 二--- 应用程序调优 (长篇总结)

柯南君:教你如何对待大型网站平台的性能优化? 之 "二"--- 应用程序调优(长篇总结) 柯南君 上一章 <柯南君:教你如何对待大型电商平台的性能优化?之 一 (方法.指标.工具.定位)>讲到了一些测试方法.测试指标.以及测试工具.稍微讲了一些如何定位的方法?这一章主要讲一下"如何优化应用程序,将其性能提升". 一.基本知识  1.下面讲一些JAVA 程序性能方面的一些看法,首先给大家讲一下应用程序调优,需要调优哪些项? ① 运算的性能 : 看哪一个算法

open_window()到底做了什么?

1 Hlong MainWndID= (Hlong)m_hWnd; 2 open_framegrabber("File", 4, 4, 0, 0, 0, 0, "default", -1, "default", -1, "default", 3 "", "default", -1, -1, &AcqHandle); 4 grab_image(&Image, AcqHand