C++工程边界
全库目录221
本文目录30
设编辑器加载资产插件M,先创建缓存B,再在界面线程T创建解码器A。A借用B的缓存页,后台任务W处理资产,T还管理A的窗口和COM接口。用户关闭A时,W尚未退出,随后又要求卸载M。宿主要分别保证声明和字节契约、对象与模块寿命、清理线程与执行次序。
阅读顺序
| 技术问题 | 主归属 |
|---|---|
| C++源文件怎样形成可加载模块,对象布局与资源操作又受到哪些约束? | C++构建与对象模型 |
| 宿主怎样创建插件对象、建立借用关系并安全交接单对象关闭权? | 插件接口与对象借用 |
| 模块怎样停止工作、排空访问并按依赖销毁对象,最终卸载代码? | 插件关闭与卸载 |
| 宿主怎样在指定线程完成异步撤销、窗口销毁和接口释放,并确认每个步骤的结果? | 线程受限资源的关闭 |
对象借用决定B必须保留多久,模块关闭决定代码何时能卸载,资源收尾决定操作在哪个线程、按什么次序完成。阅读关闭协议前,先掌握接口篇的对象表、使用令牌、依赖边和唯一关闭记录。
C++构建与模块边界
详见 C++构建与对象模型。
C++ 构建链
详见 C++构建与对象模型。
头文件与翻译单元
详见 C++构建与对象模型。
静态与动态库
详见 C++构建与对象模型。
ABI 与 C接口
详见 C++构建与对象模型。
类型布局与资源语义
详见 C++构建与对象模型。
C++ 类型与布局
详见 C++构建与对象模型。
C++ 对象模型与虚函数
详见 C++构建与对象模型。
复制、移动与异常安全
详见 C++构建与对象模型。
布局与边界字节
详见 C++构建与对象模型。
Win32 与 COM 边界
详见 C++构建与对象模型。
所有权与模块接口
详见 插件接口与对象借用。
C ABI契约
详见 插件接口与对象借用。
接口结构的版本协商
详见 插件接口与对象借用。
对象使用与关闭
详见 插件接口与对象借用。
调用入口与依赖登记
详见 插件接口与对象借用。
普通销毁与对象借用
详见 插件接口与对象借用。
关闭记录与执行权
详见 插件接口与对象借用。
模块关闭与停止请求
详见 插件关闭与卸载。
工作排空与清理准备
详见 插件关闭与卸载。
清理线程与关闭派发
详见 线程受限资源的关闭。
异步撤销的结果对账
详见 线程受限资源的关闭。
窗口与接口收尾
详见 线程受限资源的关闭。
关闭期间的依赖清理调用
详见 插件关闭与卸载。
依赖销毁与卸载续行
详见 插件关闭与卸载。
验证方法
分别制造缺符号、ABI版本不匹配与加载缺库,确认诊断阶段准确。测试空指针、字段size和成对释放;编译器私有容器不跨稳定插件接口。通用所有权见对象生命周期。
实现与证据
C ABI声明是接口片段。版本前缀、错误输出、模块引用与线程要求按正文资料解释;关闭步骤、协调者代次、结果收件表及清理授权是本文定义的宿主协议。正文沿A、B、T推演关闭与接管,未编译动态库、加载宿主或执行实际COM异步撤销。
相关主题
参考资料
-
Microsoft:引用计数规则、进程、线程与Apartment:2026-10-23核读接口引用的获取释放与跨Apartment传递。
-
Microsoft单线程Apartment、DestroyWindow:2026-10-24核读所属线程、跨Apartment封送、消息循环及窗口销毁线程限制。协调者、步骤执行权和关闭通道是本文定义的宿主协议。
-
Microsoft异常安全:The three exception guarantees,基本、强与不抛异常保证;2026-10-22核读。
-
C++标准草案 temp.explicit:显式实例化声明与定义;2026-10-22核读。
-
C++ Core Guidelines:I.26、C.35与R资源管理。
-
Microsoft Dynamic-Link Libraries:模块加载与导出边界。