C++11动态库函数变量命名详解与规则
需积分: 41 142 浏览量
更新于2024-08-30
收藏 164KB PDF 举报
C++11动态导入库函数和变量命名规则是实现跨模块通信和动态链接的关键。当在程序中需要使用DLL(动态链接库)中的函数或变量时,动态导入库LIB文件作为一种工具,允许我们静态加载这些功能,而无需在编译时硬编码库路径。这些导入符号遵循一套特定的命名格式。
1. 符号命名格式:
- 函数名:通常以`?`开头,后跟函数全名,如`?函数名-作用域-类成员属性-调用约定-返回值类型-参数表`。例如,`?myFunction-Class::publicMethod-stdcall-int-int*`。
- 模板函数:类似函数,但包含模板参数,如`?$templateFunction<int, char>-Namespace::publicTemplate<int, char>stdcall-int-int*`。
- 变量:命名规则类似,如`variableName-作用域-类成员属性-变量类型-常数约定`,如`myVariable-Class::privateVariable-int const`。
- 自定义函数指针:`functionPointerType-调用约定-返回值类型-参数表`。
- 自定义模板类型:如`V$CustomType-TemplateParameters-作用域@`。
- 类型:如`VClass-TypeName-作用域@`,U结构`-UStructName-作用域@`,W4枚举`-W4EnumName-作用域@`。
2. 描述和规则细节:
- 前缀特殊字符用于区分导入符号,如`?`用于函数,`?$`用于模板。
- 所有自定义名称以`@`结尾,但系统定义的类型和函数名除外。
- 作用域由类型(如类、模板、命名空间)组成,可嵌套,无作用域则用`@`表示。
- 模板参数表和函数参数表用`@`分隔参数,结尾使用`@Z`、`@XZ`或`ZZ`标记。
- 自定义类型和特殊函数的编号体系独立,编号从0开始,用于唯一标识。
- 特殊函数不参与编号,且其所属类(或结构)使用编号0。
3. 缩写和命名规范:
- 编号缩写用于简写完整名称,但无需额外的`@`标志。
了解并遵循这些命名规则有助于正确解析和使用C++11动态导入库,确保程序能够顺利地访问和调用DLL中的功能。在实际操作中,编写DEF文件时,务必严格按照规则来定义符号,以避免编译错误和链接问题。
2020-08-26 上传
914 浏览量
2011-03-31 上传
2023-04-04 上传
2008-01-03 上传
2023-03-11 上传
101 浏览量
2024-12-28 上传
2024-12-28 上传
qq_34256696
- 粉丝: 1
- 资源: 6
最新资源
- reva-cplusplus:C ++ Rev.a示例
- flamedfury.com:在neocities.org上托管的flamedfury.com静态网站
- EPCOS铝电解电容规格书.rar
- dzpzy98.github.io:投资组合网站
- SDRunoPlugin_drm:SDRuno的实验性DRM插件
- 职称考试模拟系统asp毕业设计(源代码+论文).zip
- DatingApp
- tokenize:用于身份验证的通用令牌格式。 旨在安全、灵活且可在任何地方使用
- Heart Disease UCI 心脏病UCI-数据集
- A5Orchestrator-1.0.3-py3-none-any.whl.zip
- PyDoorbell:基于Micropython微控制器的门铃
- ohr-point-n-click:OHR社区点击冒险游戏
- 仿ios加载框和自定义Toast带动画效果
- sqlalchemy挑战
- 西门子S7300的十层电梯程序.rar
- tabletkat:KitKat 的真正平板电脑用户界面