C++随笔1

news/2024/12/5 12:46:29/

stack_memory  Debug下默认用0xcccc cccc填充

heap_memory  Debug下默认用0xcdcd cdcd填充

HeapFree() Debug下默认用0xfeee feee填充heap_memory

调用方式:

_cdecl:默认的函数调用约定,也称为C调用约定(cdecl)。在_cdecl调用约定下,函数参数从右至左入栈,由调用方清理栈上的参数。它适用于可变参数函数和函数指针。

_stdcall:又称为标准调用约定(stdcall),在Windows API中广泛使用。在_stdcall调用约定下,函数参数从右至左入栈,由被调用方清理栈上的参数。该约定还会导致函数名被装饰为带有下划线前缀和后缀的名称。此约定确保了参数的正确传递和堆栈的正确清理。

_fastcall:称为快速调用约定(fastcall),在某些编译器中可用。在_fastcall调用约定下,函数的第一个和第二个参数通过寄存器传递,而后续的参数通过栈传递。_fastcall约定可以提高函数调用的性能,但只能用于特定寄存器可用的参数数量。

 

.dll 和 .lib

在Visual Studio中生成动态链接库(.dll)时,同时生成的.lib文件是用于静态链接的导入库文件。这是因为在开发过程中,存在两种方式使用动态链接库:隐式链接和显式链接。

1.隐式链接:在使用动态链接库时,编译器通过.lib文件进行静态链接,将库中的函数和变量加入到最终生成的可执行文件中。这样,在运行时,可执行文件无需明确地加载和链接.dll文件,而是直接调用静态链接库中的函数和变量。

2.显式链接:如果开发者希望在运行时动态加载.dll文件,并通过函数的地址进行调用,则需要使用显式链接。在这种情况下,需要使用.lib文件来指导编译器生成与动态链接库相关的函数调用。.lib文件中包含了动态链接库中函数的符号信息,用于编译时解析动态链接库中函数的地址。然后在运行时动态加载.dll文件,并通过函数的地址进行调用。

so,生成.dll文件时,生成的.lib文件提供了静态链接的导入库,用于隐式链接和显式链接时的编译和链接操作。.lib文件在开发过程中起到了指导编译器生成与动态链接库相关代码的作用


http://www.ppmy.cn/news/965062.html

相关文章

ChatGPT 抢不走程序员饭碗的原因找到了?最新研究:它自动生成了 21 个程序,16 个有漏洞

一个好消息与一个坏消息。 好消息是,继 ChatGPT、GPT-4 等产品之后,代码生成工具的队伍再添新员。Google 近日宣布 Bard 可以辅助软件开发者完成编程和软件开发任务,支持代码生成、调试和代码解释等等。同时,Bard 支持 C、Go、Ja…

【ChatGPT】程序员手别抖,端好你的饭碗:程序员要怎么和 ChatGPT 共处?

文章目录 1. 引言:ChatGPT与程序员的关系2. ChatGPT的能力与限制2.1 代码生成与理解2.2 跨领域知识的处理2.3 人际沟通与团队协作 3. 程序员的核心技能与价值3.1 问题解决与创新思维3.2 高级架构设计与优化3.3 持续学习与适应能力 4. ChatGPT在软件开发过程中的潜在…

Java 压缩多个文件为zip包(中间不生成临时文件,直接压缩为zip二进制流),以及解压zip包二进制流为文件

Java 压缩多个文件为zip包及解压zip包以及压缩多文件为zip文件流解压zip二进制流(中间不生成临时文件,直接压缩为zip二进制流,并验证解压) 1. 效果图2. 源码 这篇博客将提供俩种方法, 提前生成要压缩的多个文件&#…

微信机器人 wechaty 针对个人微信对接chatterbot +django+drf 实现 自动回复 接入自己api接口

之前发表过chatterbot 的自定义api本人的流程 但是有粉丝或游客私信我 怎样对接自己个人微信 现在统一回复下 自己的心得流程 实现等 在写代码之前我先表述下 之前个人微信接口 使用itchat 等 在使用这类的前提是可以 登录网页版微信 网页版微信登录链接 itchat原理就是一种爬…

用chatgpt生成了想要的代码

需求是pyside2框架下,在主页面上面添加一个按钮,用于打开一个对话窗A,对话框不能访问主页面,但是可以访问在A打开的对话框B. 在网上搜了很多资料都没想到,问了下chatgpt就想到了。可以在对话框A添加函数来打开对话框B…

【算法第四天7.17】有效的字母异位词,两个数组的交集,快乐数,两数之和

链接力扣242-有效的字母异位词 思路: 1、把其中一个串的字符映射到数组也就是哈希表的索引下标 2、将某字母在串中出现的次数当作value值 3、最后,验证value值是否全为0 class Solution {public boolean isAnagram(String s, String t) {// 定义一个以2…

Ceph简介及部署

Ceph Ceph一、存储基础1、单机存储设备2、Ceph 简介3、Ceph 优势5、Ceph 架构6、Ceph 核心组件7、OSD 存储后端8、Ceph 数据的存储过程9、Ceph 版本发行生命周期10、Ceph 集群部署 二、部署ceph-deploy Ceph 集群前环境配置1、关闭 selinux 与防火墙2、根据规划设置主机名3、配…

玄幻小说法宝大全—— 网文助手

玄幻小说法宝大全—— 网文助手 . 「火炎宝剑」:一把能够喷出烈火的宝剑,可以轻松烧毁一切阻挡在持有者面前的障碍。 「天罡戒指」:一个能够召唤天罡战士的戒指,可以在战斗中替持有者战斗。 「真武剑」:一把由传说…