net网站建设语言小型网站开发需要什么步骤

pingmian/2026/1/20 5:35:39/文章来源:
net网站建设语言,小型网站开发需要什么步骤,江阴企业网站制作,euorg免费域名怎么注册缘起 我在上一篇文章——《调试实战 —— dll 加载失败之全局变量初始化篇》中#xff0c;跟大家分享了一个由于全局变量初始化顺序导致的 dll 加载失败的例子。感兴趣的小伙伴儿可以点击阅读。虽然我们知道了是由于全局变量初始化顺序导致的问题#xff0c;也给出了解决方案… 缘起 我在上一篇文章——《调试实战 —— dll 加载失败之全局变量初始化篇》中跟大家分享了一个由于全局变量初始化顺序导致的 dll 加载失败的例子。感兴趣的小伙伴儿可以点击阅读。虽然我们知道了是由于全局变量初始化顺序导致的问题也给出了解决方案。但是有一点却没有刨根问底——为什么改变文件在工程文件中的顺序就可以改变全局变量初始化顺序是怎么影响的呢本篇文章力求解决这个问题。了解 Build 我们可以简单的把整个构建过程分成三个步骤当然实际还有其它步骤我们一般不关心预编译编译链接。预编译 处理宏#include 展开等。编译 以编译单元为单位生成对应的 .obj 文件。链接 把生成的.obj 文件和必要的文件链接成最后的应用程序。猜想 因为编译是把符号放到对应的 .obj 中链接的时候才把对应的 .obj 文件链接成最后的应用程序。链接的时候应该是按照 .obj 文件出现的先后顺序依次把 .obj 中的符号放到对应的位置。思路 对比观察调整顺序前和调整顺序后的编译参数链接参数。因为猜测是链接导致的问题我们主要关注链接参数。编译过程初探 当我们在 vs 中执行 build 时的整个过程如下图使用 process monitor 捕获的vs-msbuild-cl-link可以清晰的看到vs 在内部会启动 msbuild.exe 执行后续的操作。msbuild.exe 会间接启动 cl.exe 进行编译link.exe 进行链接。我们还发现黄色高亮部分的 Tracker.exe 这个进程主要用来加速编译的。具体可以参考《Inside the Microsoft Build Engine Using MSBuild and Team Foundation Build》 这本书的介绍简单截图如下filetracker-introduce简化编译过程 因为 vs 会通过 msbuild.exe 执行操作我们可以直接使用 msbuild.exe 进行构建。msbuild 有一个选项 TrackFileAccess 可以用来控制是否使用 FileTracker。为 false 时不启用 FileTracker。为了简化问题我们直接执行 msbuild.exe -p:TrackFileAccessfalse project_file_to_build.vcxproj 。msbuild-cl-link-param我们发现传递给 cl.exe 和 link.exe 的参数都是文件。猜测应该是把参数保存到文件中传递的。据观察这些文件会在执行完后被清理。得想办法在这些文件被删除之前保存一份各位小伙伴儿有什么好办法吗我们先看下这些参数文件是谁创建和删除的什么时候删除的。创建很简单肯定是 msbuild.exe。删除呢是 cl.exe / link.exe 还是 msbuild.exe 呢又是什么时候删除的呢相信下图能很好的回答这些问题了。msbuild-remove-param-file我想到两个思路因为这些文件是 msbuild.exe 创建/删除的可以在 msbuild.exe 中文件操作的地方加断点。可以暂停 cl.exe/link.exe 的执行拷贝我们需要的文件到桌面。第一个思路相对来说比较复杂今天我们尝试第二个思路。我们该如何暂停呢请出 gflags.exe。中断 link.exe 我们可以在 gflags.exe 中进行如下设置这样当 link.exe 启动时就会中断到 windbg.exe 中了。gflags-set-debug-link断下来后我们可以在 windbg 中输入 !peb 观察参数里面包含了我们需要拷贝的文件路径。windbg-command-line有了文件路径我们就可以手动复制对应的文件到桌面慢慢研究了。对比链接参数 调整 Test1.cpp Test2.cpp 在 .vcxproj 中的顺序按上面的方法分别保存传递给 link.exe 的参数文件对比如下图格式有调整obj-link-order发现在两次链接过程中Test1.obj Test2.obj 出现的顺序是不一样的。结论 哪个源码文件在 .vcxproj 中先出现其对应的 .obj 文件在传递给 link.exe 的参数文件.rsp中越靠前会被优先处理。.obj 中包含的全局变量会被优先处理。当进程启动时执行全局变量初始化的时候会按照先后顺序初始化。总结 vs 内部会使用 msbuild.exe 编译我们也可以直接使用 msbuild.exe 进行编译。使用 msbuild.exe -p:TrackFileAccessfalse 可以在编译的过程中不启动 Tracker.exe对我们调查问题有帮助。我们可以在一个进程启动时就中断到调试器可以使用 gflags.exe 帮我们实现这一点。!peb 可以查看启动参数环境变量等信息。.vcxproj 中文件的顺序会影响最后链接时的顺序。参考资料 《Inside the Microsoft Build Engine Using MSBuild and Team Foundation Build》https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-initialization?redirectedfromMSDNviewvs-2019http://www.cppblog.com/xlshcn/archive/2007/12/07/37088.html需要你的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哈密做网站公众号引流推广平台

先介绍一下本文的作者,本人本科来自于某双非财经类院校,于2019年考入南开大学某应用经济学专业,在2019年考研初始专业课826经济学基础(也就是20年的823)中拿到了138分的成绩,自认为对专业课的复习有一定心得…

自助建设彩票网站在建立网站站点的过程中

经常做的一个操作,列出数据库中一个表的所有列名。方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再从SYSCOLUMN表中取得该表的所有列名。SQL语句如下:use dbname --dbname改为你要…

cms企业网站模板大连微信公众号开发公司

宇宙射线也叫电磁波,其中包含γ射线、X射线、紫外线、可见光、红外线、近红外、远红外,还有无线电和超声波。 无线电波是振荡电路中自由电子作周期性的运动产生的. 红外线、可见光、紫外线是原子外层电子受激发产生的. X射线是原…

免费dede企业网站模板鞍山网站怎么做出来的

电机特性 电机堵转: 电机堵转的原理 玻璃升降器: 工作电压 升降器在 9V~16V 电压下应运行平稳,不允许有异音和卡滞现象。 工作电流 升降器的工作电流不大于 12A,堵转电流不大于 28A。 堵转 力 升降器 堵转 力应 不小于 212N。 玻璃升降器结构 电动车窗…

天津市网站建设 网页制作做汽车配件生意的网站

总结: ①没有byte的字面值,赋值时需要强制转换类型 ②涉及运算,系统自动进行类型升级,由此用final修饰,代表这是一个不会更改值的常量,通过编译 感受:还是用int吧,自动类型转换太复…

青岛 企业网站建站如何去做电商

应用分层 在开发的过程中, 我们会发现, 程序的代码有时会很"杂乱", 如果后面的项目更大了, 那就会更加地杂乱无章(文件乱, 代码内容乱). 也基于此, 接下来让我们来学习一下应用分层. 也类似于公司的组织架构 公司初创阶段, 一个人身兼数职, 既做财务, 又做人事,还有…

jrs直播网站谁做的网站建设所用的工具

初中数学课程标准修改后,教材中四点共圆知识已经删除掉了,但这样一件强悍且使用简单的武器,我们还是有必要去了解的,近年来对于压轴题以几何为核心的考区来说,有时用到解题更为简洁方便,由此应该理解掌握。…

怎么做加盟美容院网站完美代码网站

注: 在《SVD(异值分解)小结 》中分享了SVD原理,但其中只是利用了numpy.linalg.svd函数应用了它,并没有提到如何自己编写代码实现它,在这里,我再分享一下如何自已写一个SVD函数。但是这里会利用到SVD的原理,…

企业建设网站方案建筑网片厂家货源平台

1.定义 trait trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。 一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话&#xff…

做网站的费用wordpress链接在哪里设置

【摘要】数据安全是计算机安全问题的核心,对于很多具有高度保密要求的单位,安全地存储重要数据,并且在不需要这些数据时作彻底销毁不被他人恢复是至关重要的。本文详细介绍了数据安全存储技术的发展现状,并结合典型的企业信息安全…

2013年以前pc网站建设找网页模板的网站好

产品概述: NCV8705 是一款低噪音、低功耗和低泄漏线性电压稳压器。该器件具有卓越的噪音和 PSRR 规格,适用于使用视频接收器、成像传感器、音频处理器或需要外部洁净电源的任何部件的产品。NCV8705 使用创新的自适应接地电流电路 可确保轻负载调节下的超…

建设网站怎么加购物车网站模板模板

SSH密钥文件 Github里面S设置SH公钥有两者选择方式 账号下的每个仓库都设置一个公钥,因为GitHub官方要求每个仓库的公钥都不能相同,所以每个账号都要搞一个密钥(很麻烦)给账号分配一个公钥,然后这个公钥就可以在这个…

网站建设最好的书籍是北京商场打折

作者简介: 目录 1.概述 2.CPU管理 3.内存管理 4.IO管理 1.概述 操作系统可以看作一个计算机的管理系统,对计算机的硬件资源提供了一套完整的管理解决方案。计算机的硬件组成有五大模块:运算器、控制器、存储器、输入设备、输出设备。操作…

做流量任务的试用网站新郑网络推广外包

MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引擎的区别。这次就简短侃一下存储引擎那些事儿。先去查一下“引擎”概念。引擎(Engine)是电子平…

地方文明网站建设wordpress 文章id修改

导言 在如今的互联网时代,Java接口压力测试是评估系统性能和可靠性的关键一环。一旦接口不能承受高并发量,用户体验将受到严重影响,甚至可能导致系统崩溃。因此,了解如何进行有效的Java接口压力测试以及如何优化接口性能至关重要…

成都企业网站公司wordpress 媒体播放

固定时间窗口算法 固定时间窗口算法也可以叫做简单计数算法。网上有很多都将计数算法单独抽离出来。但是笔者认为计数算法是一种思想,而固定时间窗口算法是他的一种实现包括下面滑动时间窗口算法也是计数算法的一种实现。因为计数如果不和时间进行绑定的话那么失去…

网站开发开源软件织梦网站修改教程视频

前面我们讲完了Python的基础语法、基本的数据类型以及各种数据类型间的转换。现在可以进行Python的基础知识的逐步详解学习了。下面我们开始讲解Python基础知识:运算符。 在Python中,运算符是用于执行各种操作的符号,它们可以对数字、字符串…

网站设计与制作软件envato wordpress toolkit

最近公司要制作个文档库,直接就可以将jekyll应用到实际中。 模版使用了Jekyll Clean,这么模版相对内部简单一点,学习成本不会很大,而复杂的Minimal Mistakes就当作参考。 模版使用的CSS是Bootstrap v3.2.0版本的。为了省时点&…

做标签网站邀请码wordpress删除媒体库

如果使用了 https 协议,那么在建立 tcp 连接之后,还会进行 tls 握手。也就是 https 的证书验证和密钥传输的过程。简化的流程如下: 客户端发送请求服务端返回证书客户端验证证书,提取公钥,生成对称加密的密钥&#xf…

网站改版引导做网络销售怎么建立网站

导读:如何撰写出满意的大学本科计算机论文是现在很多人都为之苦恼的问题之一,而论文的撰写也并非易事,必定是需要花费很多心思和汗水的,本论文分类为大学计算机论文,下面是小编为大家整理的几篇大学本科计算机论文范文…