自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(208)
  • 资源 (29)
  • 问答 (2)
  • 收藏
  • 关注

原创 windows Terminal 闪退 -- 捣蛋砖家

后来发现是修改了用户环境变量,导致读取失败闪退,唉,快点炒了阿三吧,这么点小问题就各位崩溃闪退,真他马脆!上窜下跳一通,没找到解决方法,气白勺要差点重装系统。最近点击Windows 终端总是闪退。

2024-10-29 16:15:31 140

原创 修复Windows10控制面板中丢失BitLocker

​网上很多方法:win10家庭版控制面板没有BitLocker的解决方法【详解】-太平洋IT百科但随着版本更新,很多服务间有关联。这里找到导致此问题新的点:把 ShellHWDection 服务由禁用改为手动或自动,重启电脑就可以了。

2024-10-23 23:11:49 193

原创 关于 Regshot 软件

有个小妙招: 在安装软件后,再手动操作一下注册表,再点 "提取[2]",比较[O] 就会有 .reg 和 .cmd 等。 或者取消勾选"不以这些日志格式记录注册表值数据",将值数据输出到 .unl4 中文界面 "TXT 文档" 应该是 "CMD 脚本" 才对。

2024-09-17 18:32:11 406

原创 在 HKCR 新增项和值

值(包括数据) 新增 优先操作 HKCU,HKCU 没有该项才操作 HKLM。在 HKCR 根键处新增值,只新增到 HKCU。项 读取、删除 优先操作 HKCU,HKCU 没有该项才操作 HKLM,HKCU 遮盖 HKLM。按理,对项、值的操作(增删改查)都是优先操作 HKCU,HKCU 没有该项(值)才操作 HKLM.修改项名 = 删除 + 新增,所以也随新增项行为而改变。但是,对项的新增操作是个特例,只新增到 HKLM。

2024-09-10 18:47:21 219

原创 Notepad++ 修改 About

2.1 使用插件 Hex Editor,拖入 Notepad++.exe 到 Notepad++.exe, 按 c..+S..+H。2.3 复制第一行,注意要复制后面 nnn 个空格,即复制长度要跟第二行相同。1. 用这个工具,看标题,修改 1700 里的 Caption。2.5 把所有 20 改成 00, 另存为 xx.exe ,2.4 Ctrl+V 粘贴到 2.2 的选中部分.2.2 按 ctrl+f 查找。2.修改链接,先准备如上。事了拂衣去,身藏功与名~~

2024-09-09 01:32:05 642

原创 程序兼容性助手 (PCA:Program Compatibility Assistant)

Application Compatibility Cache 也称为 Shimcache,是 Application Compatibility Infrastructure (Shim Infrastructure) 的一部分,在 Windows XP 中引入。填充程序基础结构(Shim Infrastructure)旨在识别应用程序兼容性问题,并保持对现有软件对新版本的 Windows 操作系统的支持。

2024-09-05 13:54:09 835

原创 定义系统平台编译器位数的宏版本 & Windows 及 Visual Studio 发行时间

【代码】定义系统平台编译器位数的宏版本 & Windows 及 Visual Studio 发行时间。

2024-06-14 17:53:48 156

原创 UltraISO 未找到虚拟光驱

VMWare Win7 虚拟机用 UltraISO 加载镜像时,提示“未找到虚拟光驱”?2. 打开 CMD, 进入 Drivers 目录,运行。1. 安装签名更新程序。

2024-06-14 09:07:08 806

原创 Windows 更新根文件夹的修改时间

使用内层目录和当前目录下的最新文件的修改时间,更新根目录的修改时间。Win10 系统不会根据深层目录文件更新主目录的修改时间.本脚本通过递归遍历子目录和子文件,来更新根目录的时间。http://win10文件夹不能自动更新了怎么办?一般解决办法是关闭 Winodws 搜索索引。

2024-06-08 01:49:16 385

原创 手机号码骚扰拦截

右上角设置->骚扰拦截->黑白名单设置->黑名单管理->添加以下列出的 88 个号码段。目前版本 16.1.1,最好把 app 保存到网盘,不保证以后是否有这个功能。右上角设置->停用不常用功能->只保留安全检测和骚扰拦。右上角设置->小火箭与悬浮窗->关闭。注意:系统权限设置-自启动-打开。下载安装腾讯手机管家,打开软件。老家区号*,工作地区号*

2023-10-23 10:47:21 517

原创 Windows 修改系统默认字体

细体(2c,01) 斜体(01,00,00)修改字体为: "Maple Mono SC NF"(4d...), 日语(80)9号(e0), 常规(90,01) 简体中文(86)使用工具: https://github.com/Tatsu-syo/noMeiryoUI/releases/"\G 小盘\教程\字体 区域 语言 代码页 字符集\字体\中英文对齐字体.txt"

2023-09-22 02:00:19 646

原创 注册表之转义反斜杠和双引号.bat

注册表之转义反斜杠和双引号.bat。:Tips @rem 1.与双引号相连前面的连续个 \ 都需要转义,使用 \\ 表示 \,使用 \" 表示 ",也可以使用 "" 表示 "。如 \\" 转义为 \\\\\" @rem 2.为避免最后一个 \ 与在外层加的双引号起作用, 最后一个 \ 也要转义为 \\ 。如 s=a\, 调用 "%s%" 时,s 要转成 a\\

2023-09-15 11:16:00 486

原创 获取文件关联的所有快捷方式.lnk

@REM 由原文件获取快捷方式,要求快捷方式是有效的,当修改原文件路径时,可能导致快捷方式无效。@REM 因为没有 "" 包含文件路径,这可能导致分隔符问题 (SPACE, TAB, ;, = 和 ,) 或特殊字符,如 ^, &、( 和 )。@REM 【Like】 运算符使用下表中的通配符来匹配子字符串:@REM 字符 说明@REM % 任何包含 0(零)个或零个以上字符的字符串。 以下示例查找类名称中任何位置出现“Win”的所有实例:SELECT *

2023-09-03 22:39:51 153

原创 注册表键值长度上限,查询等的与或非关系。

注册表键值长度上限,查询等的与或非关系, 将注册表项 MyApp 的值和子项名称导出到文件 AppBkUp.reg,不导出子项的内容。最长项名(254) 最长项名(手动256) 最长值名(259) 最长值数据(REG_SZ $1) 最长值数据(REG_BINARY 无限多页,每页64KB)

2023-08-23 18:17:31 305

翻译 nirsoft 上的所有小工具

您也可以轻松跳转到正确的实用程序部分:Password Recovery Utilities密码恢复实用程序Network Monitoring Tools网络监控工具Web Browser Tools 网页浏览器工具Video/Audio Related Utilities视频/音频相关实用程序Internet Related Utilities互联网相关实用程序Desktop Utilities 桌面实用程序Outlook/Office Utilities展望/办公实用程序Pr

2023-07-14 00:33:34 930

原创 清理Chrome缓存

有时使用Google Chrome 的清理缓存功能,还是不能很好的清理。有些网站设置没清理掉,一些网站的视频依然缓存不了。下面是我的代码,对特定目录里的所有快捷方式,读取它的原位置并删除文件。只有自己写一个程序清理了。

2023-06-18 09:29:29 2133 2

原创 Notepad++ 添加自定义右键菜单项

Notepad++ 添加右键菜单项 - “打开至” 目标: 在“编辑区域”右键弹出菜单,在“打开文件”菜单项之上,添加菜单目录项“打开至”。 在“打开至”目录里添加“文件管理器”和“命令行”。

2023-05-17 10:30:00 4960

原创 Windows 11 Bug

1. Win11 多桌面鸡肋,程序图标还在放在第一桌面,其它桌面是映射。不像手机,不同桌面放不同的程序图标。切换桌面快捷键还要用鼠标点一下,无语了。5. 排序不能按名称把目录拆散。有时排序还是有bug,如下我在 hex16 里查看,未看出任何问题,但它们就不是排在一起。4. 搜索框正则需要加前后星: *your_string*, 大多数人忽略,导致找不到结果。2. 文件资源管理器,搜索结果不能设置成默认为详细信息。还要点击右下角的四横杠。3. 文件资源管理器,切换文件夹 或 最小最大化,又跳转到搜索状态。

2023-04-22 21:17:56 318

原创 Unicode 编码表

在Unicode中,区段(block)又称码块[1],是一组连续码位的范围;区段会给予唯一的名称,且区段与区段间不会重叠。通常一个最小的区段至少包含16个码位,即 hhh0到hhhF。而 Unicode区段,也称 统一码块。一个区块可以明确地包含未分配的码位和非字符。[2] 不属于任何已命名区段的码位(例如尚未正式使用的第4-第13平面),上面码位关于区块的值会被设为 block="No_block".。相反地,每个分配的代码点都有一个“区段名称”的属性,表示出这个文字所在的区段。这仅由代码点确定。。。

2023-04-14 23:18:22 6584

原创 vscode 打开 .lnk 文件, 改变默认编译器方法

2. ctrl + , 进入设置, 输入 lock group,看到 Workbench>Editor: Auto Lock Groups。3. 在 vscode 的资源管理器,就可以直接双击打开 xxx.cpp.lnk 等快捷方式指向的文件了。1. 在扩展里搜索 Windows lnk 安装,Open 插件名就叫 Open。勾选 lnk Connector.

2023-03-23 00:06:25 1009

原创 window、linux、mac 文件路径禁止字符, 路径长度【全网总结】

参考:https://www.codenong.com/1976007/#码农翻译快照#Windows和Linux目录名中禁止使用哪些字符?https://ispacesoft.com/64457.html#各种系统路径和文件名长度的最大限制https://learn.microsoft.com/zh-cn/windows/win32/fileio/maximum-file-path-limitation#最大路径长度限制。

2023-03-20 13:11:01 3748

原创 注册表 hkcu 和 hklm 谁优先,组策略 计算机配置和用户配置 谁优先?

HKEY_LOCAL_MACHINE\Software\Policies 和 HKEY_CURRENT_USER\Software\Policies 是存储组策略设置的注册表项,它们可以用来控制用户和计算机的配置。²³⁴ 如果这两个注册表项中有相同的设置,那么 HKEY_LOCAL_MACHINE\Software\Policies 的优先级高于 HKEY_CURRENT_USER\Software\Policies,这是因为计算机策略优先于用户策略。²⁴ 其他注册表项的优先级,一般HKCU 高于HKLM

2023-03-12 23:13:39 1253

原创 关闭应用程序遥测,禁止Windows收集用户信息

关闭应用程序遥测 禁用清单收集器 允许应用使用我的广告 ID 向我展示个性化广告 诊断和反馈 量身定制的体验 在线语音识别 活动历史记录 墨迹书写和键入个性 策略服务 计划任务

2023-03-05 18:19:46 3428 2

原创 批处理 变量的 两边的引号如何去掉?

[1] %~1, %~2, ... , %n for %%i in ("") do ( %%~i ) 去外层双引号的两种情况是,字符串存在于命令行参数 %1 至 %9 中或字符串存在于 for 替代变量 %%i 中。 [2] echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%" 正则剔除两

2023-02-24 17:18:06 2936

原创 windwos 批处理 SET 命令详解.bat

本文结合以下 Micorsoft 官方在线文档和在命令行窗口键入 Set 命令查看到的中文文档,对英文文档进行翻译和校对。本文结合以下 Micorsoft 官方在线文档和在命令行窗口键入 Set 命令查看到的中文文档,对英文文档进行翻译和校对。请设置 TAB 键占位 4 个空格,字体 Ubuntu Mono,以方便浏览本文档。请设置 TAB 键占位 4 个空格,字体 Ubuntu Mono,以方便浏览本文档。CSDN 上推荐使用 Cobol,Crystal,PHP,Swift 格式化风格。

2023-02-19 00:37:29 1318

原创 CMD SET % 字符串截取

Windows CMD 批处理 SET 命令配合 % 对字符串截取出子串。set 的内部逻辑与 C++ STL Verctor 容器的迭代器一致,遵循左闭右开的原则。set 从扩展串中提取 [begin, end) 或 [begin, begin+length) 范围内的子串。

2023-02-16 12:19:14 3050

原创 cmd日期时间格式化.bat

【代码】cmd日期时间格式化.bat。

2023-02-02 20:28:39 874

原创 Powershell 打印行号、列号、文件路径.ps1

获取执行语句的行号、列号

2023-01-24 17:22:47 790

原创 阻止创建“迅雷下载“目录

: 右键 F 盘 - 属性 - 安全 - 高级 - 权限 - 添加 - 选择主体: Authenticated Users - 类型: 拒绝 - 应用于: 只有该文件夹。:: 基本权限 - 显示高级权限 - 勾选 "创建文件/写入数据" 和 "创建文件夹/附加数据" - 确定。:: 这样所有使用密码登录的用户及更低权限的用户,就不能在 F 盘根目录创建 目录 和 文件了。:: 如禁止在 F 盘根目录创建 "迅雷下载" 目录。:: 也可以以管理员权限运行以下脚本。

2023-01-06 15:09:57 1427

原创 监视注册表变化 - Registry Auditing

Registry Auditing监视注册表变化审核策略

2023-01-05 23:14:48 3538

原创 NotePad++ 绿化 v8.4.8

【代码】NotePad++ 绿化。

2023-01-01 21:46:37 2098 1

原创 文件资源管理器出现两个桌面

打开文件夹选项 - 查看 - 高级设置 - 导航窗格 - 显示所有文件夹 取消勾选

2022-12-28 14:08:41 1539

原创 Win11 批处理强制删除文件(夹)

Win11 强制删除文件 批处理

2022-12-24 11:14:50 2865 1

原创 拦截手机号码

年底电信诈骗越来越猖獗了。教你一个有效拦截骚扰电话的方式。下载安装腾讯手机管家,打开软件,骚扰拦截->黑白名单设置->添加以下列出的82个号码段。

2022-11-18 11:38:25 747

原创 Shell 相对路径转换为绝对路径

Linux Shell 相对路径转绝对路径readlink,realpath,find,ls 和 pwd 组合使用

2022-10-22 09:08:29 2415

原创 查找纯文本文件里的内容(非二进制)

经常要在大量的系统库中查找某个字段。用普通的工具(Notepad++,utral editor等)查找非常消耗时间。用 Everything (强大的搜索工具) content: 搜索文本内容.find "your directory" -type f -print0 | xargs -0 file --mime-type | grep -E "text/" | cut -d: -f1 | xargs -d"\n" grep -Eil "search string"

2022-10-17 16:54:22 896

转载 如何证明一门编程语言是图灵完备的?是否图灵完备,对语言来说会产生哪些影响?

对于函数式语言呢,更简单:已知 lambda 演算和图灵机等价,而函数式语言一般显然(我特别喜欢这个显然,XD)是 lambda 演算的超集,也完事了。熟悉图灵机的话就会知道,这是特别简单的一个模型,常见的编程语言要证明图灵完备,也就是模拟一个图灵机,那是特别简单的一件事。图灵完备这个事情的价值体现在计算机理论科学研究领域里,那里有一些看上去差异很大的计算模型,却可以通过模型之间互相模拟规约来证明它们在可计算性上等价,比如之前提到过的图灵机和 lambda 演算之间的等价性。4 = 同样每个状态编个号。

2022-09-25 01:08:52 1057

原创 json对齐行尾的注释 - 在vscode格式化

先以json方式格式化,去除中文空格,分开双引号,拉后注释,在注释前插入token. 删除token到注释前的空白字符,实现对齐。

2022-09-08 21:59:18 1555

转载 可递归的正则表达式

一般来说,递归的正则表达式用来匹配任意嵌套层次的结构或左右对称的结构。# 使用了x修饰符,忽略正则表达式内的空白符号/\( ( (?>[^()]+) | (\g) )* \)/x可以匹配(a(bc)de)、(abc(bc(def)c)de)。

2022-09-08 17:09:17 766

转载 正则的与或非

正则是用来匹配字符的,它一个重要用途就是搜索。说到搜索,很容易就想到搜索引擎,比如Google。Google本身有一些简单搜索技巧甚是有用。比如,实现集合运算功能:与、或、非。本文尝试用正则来模拟一下。

2022-09-08 05:27:58 820

读写锁rwlock读写锁rwlock

读写锁rwlock读写锁rwlock

2021-03-22

完成端口源码(包含多个例子)

多个C++例子

2021-03-04

(chkmatch)检查或强制pdb与dll匹配

chkmatch [-c ExeFile DebugInfoFile ] | [-m ExeFile DebugInfoFile] -c Check matching between the executable and the debug information file. -m Make the executable and the debug information file match. ExeFile The name of the executable file. DebugInfoFile The name of the debug information file.

2018-08-24

GENESIS 2000 DFM PE

The DFM Programming Environment is one of the many unique concepts of the Genesis 2000 system. Unlike any existing tool, the DFM Programming Environment (DFMPE) enables any user with elementary programming capability to expand the functions of the Genesis 2000 system significantly. It allows the user to add custom features to the system immediately, as and when required, without having to wait for the R&D department to deliver. These customized features are not added on as scripts to be interpreted slowly but as fully compiled and integrated functions of the system. Once installed, the customized features will be retained with each upgrade of the system with a new version. The DFMPE concept introduces a novel approach that may require getting used to, but once achieved, the benefits are numerous. Among the frequently asked questi Chapter 1 Overview Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Intended Readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Organization of this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Chapter 2 Basic Concepts Function Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 External Resource File (ERF) - Basic . . . . . . . . . . . . . . . . . . . 19 Action Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Help File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Implementation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 A Comprehensive Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 File Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 The ERF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 File Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 The Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Reentry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Bringing It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Chapter 3 Advanced Topics Implementation of Objects in DFMPE . . . . . . . . . . . . . . . . . . . 34 Layer and List Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Feature Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Shape Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Component Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 The Progress Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430205.0806 DFM Programming Environment 3 The External Resource File (ERF) - Detailed . . . . . . . . . . . . . 44 THE LAYER FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 LAYER FIELD SYNTAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Local Area Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Editing Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Spacing Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Negative Layers Opened as Positive . . . . . . . . . . . . . . . . . . . . 62 Chapter 4 Functions Format of Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 ODB_EDT_CLOSE_LIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 ODB_EDT_GET_JOB_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 ODB_EDT_GET_JOB_STEP_NAME . . . . . . . . . . . . . . . . . . . . . . . . . 66 ODB_EDT_GET_MIN_BRUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 ODB_EDT_GET_STEP_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ODB_EDT_MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 ODB_EDT_OPEN_LIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 ODB_EDT_PROGRESS_FRAME_OPEN . . . . . . . . . . . . . . . . . . . . . . 71 ODB_EDT_PROGRESS_FRAME_CLOSE . . . . . . . . . . . . . . . . . . . . . 72 ODB_EDT_PROGRESS_STEP_ADVANCE . . . . . . . . . . . . . . . . . . . 73 OBD_EDT_PROGRESS_STEP_OPEN . . . . . . . . . . . . . . . . . . . . . . . . 74 ODB_EDT_PROGRESS_STEP_CLOSE . . . . . . . . . . . . . . . . . . . . . . . 75 ODB_EDT_PROGRESS_STEP_RESET . . . . . . . . . . . . . . . . . . . . . . . 76 ODB_EDT_PROGRESS_TITLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 ODB_EDT_REFRESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ODB_EDT_RUN_LIMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ODB_EDT_COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 ODB_EDT_SCRIPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ODB_EDT_RUN_IN_PROFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 ODB_F_ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ODB_F_AREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ODB_F_CHANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ODB_F_CONV_STD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 ODB_F_COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ODB_F_DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ODB_F_DELETE_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ODB_F_GET_ATTR_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ODB_F_GET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ODB_F_GET_LIMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ODB_F_GET_TOUCHING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 ODB_F_GET_SYM_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 ODB_F_GET_SYM_RES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 ODB_F_IS_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 ODB_F_NF_TO_SHAPE_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970205.0806 DFM Programming Environment 4 ODB_F_RESIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 ODB_F_RESIZE_VERIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 ODB_F_RESIZE_BY_XY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 ODB_F_RESIZE_FACTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 ODB_F_SURROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 ODB_F_SET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 ODB_F_SET_FONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 ODB_F_SET_SYM_RES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 ODB_F_TO_SHAPE_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 ODB_F_VALIDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 ODB_FUNC_EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 ODB_FUNC_GET_DOMAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 ODB_FUNC_LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 ODB_EDA_ALL_INFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ODB_EDA_CLASSIFY_COMP_SEG . . . . . . . . . . . . . . . . . . . . . . . . 112 ODB_EDA_COMP_DELETE_ATTR . . . . . . . . . . . . . . . . . . . . . . . . 113 ODB_EDA_COMP_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 ODB_EDA_COMP_GET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 ODB_EDA_COMP_GET_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 ODB_EDA_COMP_SET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 ODB_EDA_COMP_GET_PADS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 ODB_EDA_F_FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 ODB_EDA_FID_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 ODB_EDA_LYR_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ODB_EDA_NET_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 ODB_EDA_SUBNET_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ODB_EDA_TOEP_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 ODB_EDA_TOEP_SHAPE_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ODB_EDA_TOEP_SIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 ODB_LAYER_CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 ODB_LAYER_DELETE_ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 ODB_LAYER_CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 ODB_LAYER_CONTOURIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ODB_LAYER_COPPER_AREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ODB_LAYER_COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 ODB_LAYER_COPY_TEMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ODB_LAYER_COUNT_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ODB_LAYER_COUNT_NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ODB_LAYER_COUNT_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ODB_LAYER_CREATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ODB_LAYER_CREATE_TEMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ODB_LAYER_DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ODB_LAYER_DRILL_THROUGH . . . . . . . . . . . . . . . . . . . . . . . . . 140 ODB_LAYER_DRILLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ODB_LAYER_EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 ODB_LAYER_GET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ODB_LAYER_WAS_OPENED_POS . . . . . . . . . . . . . . . . . . . . . . . . 1440205.0806 DFM Programming Environment 5 ODB_LAYER_GET_DATUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ODB_LAYER_GET_PROFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 ODB_LAYER_GET_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ODB_LAYER_GET_F_EXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 ODB_LAYER_GET_F_AREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 ODB_LAYER_GET_F_BY_NF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 ODB_LAYER_GET_LNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ODB_LAYER_GET_NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ODB_LAYER_GET_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 ODB_LAYER_GET_SHAPE_BY_NFC . . . . . . . . . . . . . . . . . . . . . . 154 ODB_LAYER_GET_WORK_LNAME . . . . . . . . . . . . . . . . . . . . . . . 155 ODB_LAYER_LIMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 ODB_LAYER_NAME_TO_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 ODB_LAYER_NAME_TO_LIST_POS . . . . . . . . . . . . . . . . . . . . . . . 158 ODB_LAYER_OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 ODB_LAYER_OPEN_POS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 ODB_LAYER_PROFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 ODB_LAYER_SET_SPAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 ODB_LAYER_QUICK_NEXT_DEL . . . . . . . . . . . . . . . . . . . . . . . . . 163 ODB_LAYER_SELECT_NF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 ODB_LAYER_RENAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 ODB_LAYER_SELECT_CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 ODB_LAYER_SET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 ODB_LAYER_CONNECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 ODB_LAYER_SUBPROFILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 ODB_LAYER_SUBSTITUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 ODB_LAYER_SYNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 ODB_LAYER_UNDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 ODB_LAYER_UNDO_FETCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 ODB_LAYER_UNDO_GET_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ODB_LAYER_UNDO_MARK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 ODB_LAYER_UNDO_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 ODB_LAYER_DELETE_SHAPE_LIST . . . . . . . . . . . . . . . . . . . . . . 178 ODB_LAYER_COMPENSATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ODB_LAYER_GET_USER_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . 180 ODB_RES_ADD_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 ODB_RES_ADD_CATEGORIES . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 ODB_RES_SORT_CATEGORIES . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 ODB_RES_ADD_MEAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 ODB_RES_ADD_MEAS_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 ODB_RES_CALC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 ODB_RES_CATEGORY_EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . 187 ODB_RES_CLASSIFY_LOCATION . . . . . . . . . . . . . . . . . . . . . . . . 188 ODB_RES_CLASSIFY_BY_PROC . . . . . . . . . . . . . . . . . . . . . . . . . . 189 ODB_RES_GET_ATTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 ODB_RES_GET_CATEGORIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 ODB_RES_GET_CATEGORY_TITLE . . . . . . . . . . . . . . . . . . . . . . . 1920205.0806 DFM Programming Environment 6 ODB_RES_GET_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 ODB_RES_GET_MEAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 ODB_RES_GET_MEAS_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 ODB_RES_GET_RANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 ODB_RES_REPORT_ACTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 ODB_RES_REPORT_ALARMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 ODB_RES_REPORT_HDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 ODB_RES_REPORT_HIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 ODB_RES_REPORT_TAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 ODB_RES_REPORT_TEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 ODB_RES_SET_CAT_LIMITS_SENSITIVE . . . . . . . . . . . . . . . . . . 206 ODB_RES_SET_DISP_LYRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 ODB_RES_SET_MEAS_SCALAR . . . . . . . . . . . . . . . . . . . . . . . . . . 208 ODB_RES_SET_MEAS_SCALAR_SQR . . . . . . . . . . . . . . . . . . . . . 209 ODB_RES_SET_MEAS_ID_SCALAR . . . . . . . . . . . . . . . . . . . . . . . 210 ODB_RES_SET_MEAS_ID_TEXT . . . . . . . . . . . . . . . . . . . . . . . . . . 212 ODB_RES_SET_SUB_CATEGORY . . . . . . . . . . . . . . . . . . . . . . . . . 214 ODB_RES_TYPICAL_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 ODB_SETUP_GET_ERF_UNITS . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 ODB_SETUP_GET_ERF_VAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 ODB_SETUP_GET_ERF_VAR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 ODB_SETUP_GET_ERF_VAR1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 ODB_SETUP_CHECK_ERF_VAR . . . . . . . . . . . . . . . . . . . . . . . . . . 220 ODB_SETUP_GET_ERF_VAR_NUMBER . . . . . . . . . . . . . . . . . . . 221 ODB_SETUP_GET_ERF_VAR_PIXELS . . . . . . . . . . . . . . . . . . . . . 222 ODB_SETUP_GET_PARAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 ODB_SETUP_GET_PARAM_OPTION . . . . . . . . . . . . . . . . . . . . . . 224 ODB_SETUP_SET_MODIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 ODB_SHAPE_AIR_GAP_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . 226 ODB_SHAPE_AIR_GAP_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 ODB_SHAPE_AREA_DIFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 ODB_SHAPE_AREA_INTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 ODB_SHAPE_AREA_UNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 ODB_SHAPE_AREA_UNION_TOL . . . . . . . . . . . . . . . . . . . . . . . . . 231 ODB_SHAPE_AREA_RECT_COVER . . . . . . . . . . . . . . . . . . . . . . . 232 ODB_SHAPE_BOTTLENECK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 ODB_SHAPE_CALC_AREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 ODB_SHAPE_CENTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 ODB_SHAPE_CENTER_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 ODB_SHAPE_CLOSE_TRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 ODB_SHAPE_COPPER_AREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 ODB_SHAPE_COUNT_CONT_NREC . . . . . . . . . . . . . . . . . . . . . . . 239 ODB_SHAPE_COVER_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 ODB_SHAPE_COVER_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 ODB_SHAPE_COVER_LIST_MAX . . . . . . . . . . . . . . . . . . . . . . . . . 243 ODB_SHAPE_DIST_MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 ODB_SHAPE_DIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450205.0806 DFM Programming Environment 7 ODB_SHAPE_DIST_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ODB_SHAPE_DIST_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 ODB_SHAPE_END_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 ODB_SHAPE_LINE_END_SEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 ODB_SHAPE_EXPAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 ODB_SHAPE_EXT_POINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 ODB_SHAPE_FILL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 ODB_SHAPE_GET_HOLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 ODB_SHAPE_GET_ISLAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 ODB_SHAPE_GET_CONT_EDGES . . . . . . . . . . . . . . . . . . . . . . . . . 255 ODB_SHAPE_INTERSECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 ODB_SHAPE_LEFT_SLIVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 ODB_SHAPE_LIMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 ODB_SHAPE_LIMITS_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 ODB_SHAPE_MIDPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 ODB_SHAPE_LIST_NEAR_LAYER . . . . . . . . . . . . . . . . . . . . . . . . 261 ODB_SHAPE_MOVE_CONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 ODB_SHAPE_MOVE_SEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 ODB_SHAPE_NEAR_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 ODB_SHAPE_NEAR_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 ODB_SHAPE_NEAR_OUTLINE_LAYER . . . . . . . . . . . . . . . . . . . . 266 ODB_SHAPE_PAR_DIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 ODB_SHAPE_POLYS2CONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 ODB_SHAPE_RESIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 ODB_SHAPE_RESIZE_CONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 ODB_SHAPE_RESIZE_IDENTICAL . . . . . . . . . . . . . . . . . . . . . . . . 271 ODB_SHAPE_SIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 ODB_SHAPE_SIZE_LINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 ODB_SHAPE_SIZE_PAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 ODB_SHAPE_SORT_RECTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 ODB_SHAPE_SORT_RECTS_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 ODB_SHAPE_SKELETON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 ODB_SHAPE_TANGENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ODB_SHAPE_TOUCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 ODB_SHAPE_TOUCH_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 ODB_SHAPE_TOUCH_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 ODB_SHAPE_TRY_PAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 ODB_SHAPE_LIST2CHULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 ODB_SHAPE_LIST2CONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 ODB_SYMBOL_CREATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 ODB_SYMBOL_GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 ODB_SYMBOL_VALIDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 ODB_SYMBOL_F_ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 ODB_SYMBOL_GET_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 ODB_SYMBOL_CHANGE_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . 291 ODB_SYMBOL_GET_RECT_SIZES . . . . . . . . . . . . . . . . . . . . . . . . 292 ODB_SYMBOL_GET_W_H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2930205.0806 DFM Programming Environment 8 ODB_SYMBOL_GET_RESOURCE . . . . . . . . . . . . . . . . . . . . . . . . . 294 ODB_SYMBOL_GET_SMD_PARAMS . . . . . . . . . . . . . . . . . . . . . . 295 ODB_SYMBOL_GET_SMD_PARAMS_ROT . . . . . . . . . . . . . . . . . 296 ODB_SYMBOL_GET_THERMAL_PARAM . . . . . . . . . . . . . . . . . . 297 ODB_SYMBOL_GET_DONUT_PARAMS . . . . . . . . . . . . . . . . . . . 299 ODB_SYMBOL_FILL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 ODB_SYMBOL_BUILD_RECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 ODB_SYMBOL_BUILD_SMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 ODB_SYMBOL_BUILD_SMD_ROT . . . . . . . . . . . . . . . . . . . . . . . . 303 ODB_SYMBOL_BUILD_THERMAL . . . . . . . . . . . . . . . . . . . . . . . . 304 ODB_SYMBOL_BUILD_DONUT . . . . . . . . . . . . . . . . . . . . . . . . . . 305 ODB_UTILS_BELL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 ODB_UTILS_CMP_W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 ODB_UTILS_GET_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 ODB_UTILS_GET_CONT_OP_ACCURACY . . . . . . . . . . . . . . . . . 309 ODB_UTILS_SET_CONT_OP_ACCURACY . . . . . . . . . . . . . . . . . 310 ODB_UTILS_GET_RESOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 ODB_UTILS_UNITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 ODB_UTILS_SORT_TCREATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 ODB_UTILS_SORT_TDESTROY . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 ODB_UTILS_SORT_TADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 ODB_UTILS_SORT_TFIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Chapter 5 ODB_LIST - Basic ODB_LIST_CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 ODB_LIST_CREATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 ODB_LIST_CREATE_2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 ODB_LIST_DESTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 ODB_LIST_COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 ODB_LIST_REMOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 ODB_LIST_ADD_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 ODB_LIST_GET_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 ODB_LIST_CHANGE_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 ODB_LIST_ADD_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 ODB_LIST_GET_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 ODB_LIST_CHANGE_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 ODB_LIST_ADD_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 ODB_LIST_GET_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 ODB_LIST_CHANGE_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 ODB_LIST_ADD_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 ODB_LIST_GET_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 ODB_LIST_CHANGE_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 ODB_LIST_ADD_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 ODB_LIST_GET_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 ODB_LIST_CHANGE_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . 3380205.0806 DFM Programming Environment 9 ODB_LIST_ADD_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 ODB_LIST_GET_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 ODB_LIST_CHANGE_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Chapter 6 ODB_LIST - Advanced ODB_LIST_COUNT_DELETED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 ODB_LIST_FIRST_SERIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 ODB_LIST_LAST_SERIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 ODB_LIST_SWAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 ODB_LIST_COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 ODB_LIST_CONCATENATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 ODB_LIST_CONDENSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 ODB_LIST_REVERSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 ODB_LIST_MINUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 ODB_LIST_MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 ODB_LIST_MAP_ARG1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 ODB_LIST_INTERSECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 ODB_LIST_SORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 ODB_LIST_TRANSFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 ODB_LIST_FIRST_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 ODB_LIST_LAST_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 ODB_LIST_MAX_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 ODB_LIST_MIN_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 ODB_LIST_MAX_SERIAL_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . 367 ODB_LIST_MIN_SERIAL_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . 368 ODB_LIST_MAX_ARG1_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . 369 ODB_LIST_MIN_ARG1_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 ODB_LIST_MAX_SERIAL_ARG1_SHAPE . . . . . . . . . . . . . . . . . . 371 ODB_LIST_MIN_SERIAL_ARG1_SHAPE . . . . . . . . . . . . . . . . . . . 372 ODB_LIST_MINUS_SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 ODB_LIST_FIRST_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 ODB_LIST_LAST_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 ODB_LIST_MAX_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 ODB_LIST_MIN_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 ODB_LIST_MAX_SERIAL_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 ODB_LIST_MIN_SERIAL_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 ODB_LIST_MAX_ARG1_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 ODB_LIST_MIN_ARG1_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 ODB_LIST_MAX_SERIAL_ARG1_F . . . . . . . . . . . . . . . . . . . . . . . . 383 ODB_LIST_MIN_SERIAL_ARG1_F . . . . . . . . . . . . . . . . . . . . . . . . 384 ODB_LIST_MINUS_F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 ODB_LIST_FIRST_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 ODB_LIST_LAST_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 ODB_LIST_MAX_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 ODB_LIST_MIN_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3900205.0806 DFM Programming Environment 10 ODB_LIST_MAX_SERIAL_NAME . . . . . . . . . . . . . . . . . . . . . . . . . 391 ODB_LIST_MIN_SERIAL_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . 392 ODB_LIST_MAX_ARG1_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 ODB_LIST_MIN_ARG1_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 ODB_LIST_MAX_SERIAL_ARG1_NAME . . . . . . . . . . . . . . . . . . . 395 ODB_LIST_MIN_SERIAL_ARG1_NAME . . . . . . . . . . . . . . . . . . . . 396 ODB_LIST_MINUS_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 ODB_LIST_FIRST_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 ODB_LIST_LAST_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 ODB_LIST_MAX_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 ODB_LIST_MIN_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 ODB_LIST_MAX_SERIAL_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 ODB_LIST_MIN_SERIAL_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 ODB_LIST_MAX_ARG1_ INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 ODB_LIST_MIN_ARG1_ INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 ODB_LIST_MAX_SERIAL_ARG1_INT . . . . . . . . . . . . . . . . . . . . . 407 ODB_LIST_MIN_SERIAL_ARG1_INT . . . . . . . . . . . . . . . . . . . . . . 408 ODB_LIST_MINUS_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 ODB_LIST_FIRST_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 ODB_LIST_LAST_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 ODB_LIST_MAX_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 ODB_LIST_MIN_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 ODB_LIST_MAX_SERIAL_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . 415 ODB_LIST_MIN_SERIAL_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . 416 ODB_LIST_MAX_ARG1_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . 417 ODB_LIST_MIN_ARG1_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . 418 ODB_LIST_MAX_SERIAL_ARG1_DOUBLE . . . . . . . . . . . . . . . . . 419 ODB_LIST_MIN_SERIAL_ARG1_DOUBLE . . . . . . . . . . . . . . . . . 420 ODB_LIST_MINUS_DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 ODB_LIST_FIRST_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 ODB_LIST_LAST_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 ODB_LIST_MAX_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 ODB_LIST_MIN_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 ODB_LIST_MAX_SERIAL_LAYER . . . . . . . . . . . . . . . . . . . . . . . . 427 ODB_LIST_MIN_SERIAL_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . 428 ODB_LIST_MAX_ARG1_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . 429 ODB_LIST_MIN_ARG1_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 ODB_LIST_MAX_SERIAL_ARG1_LAYER . . . . . . . . . . . . . . . . . . 431 ODB_LIST_MIN_SERIAL_ARG1_LAYER . . . . . . . . . . . . . . . . . . . 432 ODB_LIST_MINUS_LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 Chapter 7 Macros MAX(X,Y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 MIN(X,Y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 SGN(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4350205.0806 DFM Programming Environment 11 ABS(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 INT(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 DEG(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 RAD(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 LENGTH(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 I2P(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 P2I(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 MIL2P(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 P2MIL(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 MM2P(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 P2MM(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 MIC2P(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 P2MIC(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 SWAP(A,B,TYPE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 ODB_RETURN_OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 ODB_RETURN_STOPPED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 ODB_RETURN_ERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 ODB_ASSERT(X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 STATUS_CHECK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 ODB_M_IS_DESC_NULL(OBJ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 ODB_MALLOC(SIZE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 ODB_CALLOC(NELEM,SIZE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 ODB_FREE(P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 ODB_REALLOC(P,SIZE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 ODB_COND_FREE(P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 ODB_M_F_COPY(DEST_F, SOURCE_F) . . . . . . . . . . . . . . . . . . . . . . . 440 ODB_M_F_TO_1_SHAPE(F, SHAPE, SUCCESS) . . . . . . . . . . . . . . . . . 441 ODB_M_F_NF_TO_1_SHAPE(NF, LAYER, SHAPE, SUCCESS) . . . . . . 441 ODB_M_IS_SHAPE_POINT(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . . 441 ODB_M_IS_SHAPE_SEG(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 ODB_M_IS_SHAPE_CURVE(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . 442 ODB_M_IS_SHAPE_CIRCLE(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . 442 ODB_M_IS_SHAPE_SQUARE(SHAPE) . . . . . . . . . . . . . . . . . . . . . . 442 ODB_M_IS_SHAPE_RECT(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . . 442 ODB_M_IS_SHAPE_LINE(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . . . 442 ODB_M_IS_SHAPE_ARC(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . . . 443 ODB_M_IS_SHAPE_CONT(SHAPE) . . . . . . . . . . . . . . . . . . . . . . . . . 443 ODB_M_SHAPE_COPY(DEST, SOURCE) . . . . . . . . . . . . . . . . . . . . . . 443 ODB_M_SHAPE_FREE(S1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 ODB_M_OBJ_EQ(O1, O2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 ODB_M_POINT_EQ(S1, S2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 ODB_M_POINT_COPY(P_DEST, P_SOURCE) . . . . . . . . . . . . . . . . . . 444 ODB_M_POINT_CREATE(X, Y, P_DEST) . . . . . . . . . . . . . . . . . . . . . 4440205.0806 DFM Programming Environment 12 Chapter 8 Literals Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 Literal List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 Alphabetic List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 Appendix A Common Examples The External Resource File (ERF) . . . . . . . . . . . . . . . . . . . . . 467 Sample Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 Makefile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Appendix B Frequently Asked Questions Appendix C Error Messages Appendix D System Administrator Notes Debugging Shared Library DLLs . . . . . . . . . . . . . . . . . . . . . . 487 SPARCWORKS DEBUGGER: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 DEBUGGING UNDER SOLARIS 2.4 AND GDB 4.16 . . . . . . . . . . . . . . . . . 487 BUILDING DEBUGGABLE SHARED LIBRARIES UNDER SOLARIS WITH “GCC” 48

2018-08-12

深入实践Boost Boost程序库开发的94个秘笈

Boost库是由专业人员开发,在多个平台和处理器架构上测试,并适用于广泛任务的可靠解决方案。本书将带你踏上简化应用程序开发过程的旅程,引导你更快地编写完美的应用程序。   《深入实践Boost:Boost程序库开发的94个秘笈》详细阐述多线程、网络编程、元编程和泛型编程,并探讨如何只编写一次程序,就能在Linux、Windows、Mac OS和Android操作系统中使用。书中汇集Boost库开发者创建的许多清晰、实用的秘笈,循序渐进地引导读者了解并充分利用Boost和C++的真正优势,以及一些现成可用的解决方案,快速开发高品质、可移植的应用程序。   《深入实践Boost:Boost程序库开发的94个秘笈》主要内容:   涵盖日常使用的新数据类型、图形处理的基础知识,以及一些编程技巧。   讨论如何使用智能指针管理资源,根除内存泄漏问题,以及如何使用Boost库执行与多线程和常见的字符串相关的任务。   讲解如何将处理、计算和相互作用拆分为仿函数(任务)并且独立地完成这些任务。   探讨用于检测编译器、平台和Boost功能的各种辅助宏。   在C++03中使用精选的C++11特性。 目录 译者序 前言 第1章 开始编写应用程序 1 秘笈1 获取配置选项 1 秘笈2 在容器/变量中存储任意值 5 秘笈3 在变量/容器中存储多个选择类型 7 秘笈4 使用更安全的方式处理存储多个选择类型的容器 8 秘笈5 返回一个值或在没有值的地方返回一个标志 12 秘笈6 从函数返回数组 14 秘笈7 将多个值结合成一个值 16 秘笈8 重新排列函数的参数 18 秘笈9 绑定一个值作为函数参数 21 秘笈10 使用C++11移动仿真 23 秘笈11 制作一个不可复制的类 26 秘笈12 制作一个不可复制但可移动的类 28 第2章 数据转换 32 秘笈13 将字符串转换为数值 32 秘笈14 将数值转换为字符串 34 秘笈15 将数值转换为数值 36 秘笈16 用户定义类型与字符串的相互转换 39 秘笈17 强制转换多态对象 41 秘笈18 解析简单的输入 43 秘笈19 解析输入 46 第3章 资源管理 51 秘笈20 管理作用域内的类指针 51 秘笈21 跨方法使用的类指针的引用计数 53 秘笈22 管理作用域内的数组指针 55 秘笈23 跨方法使用的数组指针的引用计数 56 秘笈24 在变量中存储任意函数化对象 59 秘笈25 在变量中传递函数指针 61 秘笈26 在变量中传递C++11中的lambda函数 62 秘笈27 指针的容器 63 秘笈28 在退出作用域时做一些事 66 秘笈29 用派生类的成员初始化基类 67 第4章 编译时技巧 71 秘笈30 在编译时检查大小 71 秘笈31 在整数类型中启用模板函数 75 秘笈32 在实数类型中禁用模板函数 77 秘笈33 从数值创建一个类型 80 秘笈34 实现类型特征 82 秘笈35 为模板参数选择最佳操作符 83 秘笈36 在C++03中获取一个表达式的类型 86 第5章 多线程 89 秘笈37 创建一个执行线程 89 秘笈38 对公共资源的同步访问 92 秘笈39 利用原子性快速访问公共资源 96 秘笈40 创建work_queue类 98 秘笈41 多读者单写者锁 102 秘笈42 创建对每个线程都是独占的变量 104 秘笈43 中断线程 106 秘笈44 操纵一组线程 108 第6章 处理任务 109 秘笈45 注册任务用于处理任意数据类型 109 秘笈46 制作定时器并把定时器事件作为任务处理 113 秘笈47 将网络通信作为一个任务 116 秘笈48 接受传入的连接 121 秘笈49 并行执行不同的任务 125 秘笈50 输送任务处理 127 秘笈51 制作一个非阻塞障碍 131 秘笈52 存储一个异常并用它制作任务 135 秘笈53 作为任务获取和处理系统信号 138 第7章 处理字符串 142 秘笈54 改变大小写及不区分大小写的比较 142 秘笈55 使用正则表达式匹配字符串 144 秘笈56 使用正则表达式查找和替换字符串 147 秘笈57 使用安全的类似printf的函数格式化字符串 150 秘笈58 替换和删除字符串 152 秘笈59 用两个迭代器表示字符串 153 秘笈60 使用string类型的引用 156 第8章 元编程 160 秘笈61 使用“类型向量”类型 160 秘笈62 操作类型向量 164 秘笈63 在编译时获取一个函数的结果类型 168 秘笈64 制作高阶元函数 170 秘笈65 懒惰地对元函数求值 172 秘笈66 将所有元组元素转换为字符串 175 秘笈67 拆分元组 178 第9章 容器 182 秘笈68 以超快速的方式比较字符串 182 秘笈69 使用无序集合和映射 186 秘笈70 制作值也是一个键的映射 189 秘笈71 使用多索引容器 192 秘笈72 从单链表和内存池获得好处 197 秘笈73 使用平面关联式容器 200 第10章 收集平台和编译器 信息 204 秘笈74 检测int128支持 204 秘笈75 检测RTTI支持 206 秘笈76 使用C++11外部模板加快编译速度 208 秘笈77 使用更简单的方法编写元函数 209 秘笈78 在C++11中减少代码量和提高用户定义类型的性能 211 秘笈79 导入和导出函数和类的可移植方式 213 秘笈80 检测Boost版本和最新的功能 215 第11章 与系统打交道 218 秘笈81 列出目录中的文件 218 秘笈82 创建及删除文件和目录 220 秘笈83 将数据从一个进程快速传递到另一个进程 222 秘笈84 同步进程间通信 225 秘笈85 在共享内存中使用指针 228 秘笈86 读取文件的最快方式 229 秘笈87 协程——保存状态并推迟执行 232 第12章 揭开冰山一角 235 秘笈88 使用图形 235 秘笈89 可视化图形 239 秘笈90 使用真随机数发生器 241 秘笈91 使用可移植的数学函数 243 秘笈92 编写测试用例 244 秘笈93 将多个测试用例结合到一个测试模块 246 秘笈94 处理图像 248

2017-11-30

[精通正则表达式(第3版)]中英文双版.(美)Jeffrey.E.F.Friedl

[精通正则表达式

2017-07-11

信息系统项目管理师真题及答案

2017-04-01

boost 中文文档api

boost库中文帮助文档. 1. Boost.Accumulators Preface 序言 User's Guide 用户指南 Acknowledgements 鸣谢 Reference 参考手册 2. Boost.Any Introduction 简介 Examples 例子 Reference 参考手册 Acknowledgements 鸣谢 3. Boost.Array Introduction 简介 Reference 参考手册 Design Rationale 设计原理 For more information... 更多信息... Acknowledgements 鸣谢 4. Boost.Concept_Check Concept reference 概念参考 5. Boost.Date_Time Conceptual 概念说明 General Usage Examples 常见用例 Gregorian 格里历 Posix Time Posix 时间 Local Time 本地时间 Date Time Input/Output 日期时间的输入/输出 Serialization 序列化 Details 细节 Examples 例子 Library Reference 库参考手册 6. Boost.Foreach Introduction 简介 Extensibility 可扩展性 Portability 可移植性 Pitfalls 缺陷 History and Acknowledgements 历史与鸣谢 7. Boost.Function Introduction 简介 History & Compatibility Notes 历史与兼容性说明 Tutorial 教程 Reference 参考手册 Frequently Asked Questions 常见问题 Miscellaneous Notes 杂项说明 Testsuite 测试套件 8. Boost.Functional/Hash Introduction 简介 Tutorial 教程 Extending boost::hash for a custom data type 为定制的数据类型扩展 boost::hash Combining hash values 组合散列值 Portability 可移植性 Disabling The Extensions 禁止扩展 Change Log 变更历史 Reference 参考手册 Links 链接 Acknowledgements 鸣谢 9. Boost.Interprocess Introduction 简介 Quick Guide for the Impatient 快速入门 Some basic explanations 基本说明 Sharing memory between processes 进程间的共享内存 Mapping Address Independent Pointer: offset_ptr 映射地址无关的指针:offset_ptr Synchronization mechanisms 同步机制 Managed Memory Segments 管理内存段 Allocators, containers and memory allocation algorithms 分配器、容器和内存分配算法 Direct iostream formatting: vectorstream and bufferstream 直接 iostream 格式化:vectorstream 和 bufferstream Ownership smart pointers 智能指针的所有权 Architecture and internals 体系结构与内部细节 Customizing Boost.Interprocess 定制 Boost.Interprocess Acknowledgements, notes and links 鸣谢、说明与链接 Boost.Interprocess Reference 参考手册 10. Boost.Intrusive Introduction 简介 Intrusive and non-intrusive containers 介入式与非介入式容器 How to use Boost.Intrusive 如何使用 Boost.Intrusive When to use? 何时使用? Concept summary 概念摘要 Presenting Boost.Intrusive containers 介绍 Boost.Intrusive 容器 Safe hooks 安全的挂钩 Auto-unlink hooks 自动卸载的挂钩 Intrusive singly linked list: slist 介入式的单链表:slist Intrusive doubly linked list: list 介式式的双链表:list Intrusive associative containers: set, multiset, rbtree 介入式的关联式容器:set, multiset, rbtree Semi-Intrusive unordered associative containers: unordered_set, unordered_multiset 半介入式的关联式容器:unordered_set, unordered_multiset Intrusive splay tree based associative containers: splay_set, splay_multiset and , splay_tree 介入式 splay 树:splay_set, splay_multiset and , splay_tree Intrusive avl tree based associative containers: avl_set, avl_multiset and avltree 介入式 avl 树:avl_set, avl_multiset and avltree Intrusive scapegoat tree based associative containers: sg_set, sg_multiset and sgtree 介入式 scapegoat 树:sg_set, sg_multiset and sgtree Advanced lookup and insertion functions for associative containers 关联式容器的高级查找和插入函数 Erasing and disposing values from Boost.Intrusive containers 从 Boost.Intrusive 容器中删除和处理值 Cloning Boost.Intrusive containers 克隆 Boost.Intrusive 容器 Using smart pointers with Boost.Intrusive containers 将智能指针用于 Boost.Intrusive 容器 Obtaining iterators from values 从值获取迭代器 Any Hooks: A single hook for any Intrusive container 任意挂钩:用于任意介入式容器的单个挂钩 Concepts explained 概念说明 Node algorithms with custom NodeTraits 带定制NodeTraits 的节点算法 Containers with custom ValueTraits 带定制 ValueTraits 的容器 Thread safety guarantees 线程安全性保证 Obtaining the same types and reducing symbol length 获得相同的类型和缩短符号长度 Design Notes 设计说明 Performance 性能 Release Notes 发布说明 Tested compilers 已测试的编译器 References 参考手册 Acknowledgements 鸣谢 Reference 参考 License notices 许可证通告 11. Boost.Lambda In a nutshell 简单说明 Getting Started 入门 Introduction 简介 Using the library 使用本库 Lambda expressions in details Lambda表达式的详细说明 Extending return type deduction system 扩展返回类型推导系统 Practical considerations 实际考虑 Relation to other Boost libraries 与其它 Boost 库的关系 Contributors 贡献者 Rationale for some of the design decisions 某些设计决议的原理 Bibliography 参考书目 12. Boost.MPI Introduction 简介 Getting started 入门 Tutorial 教程 Reference 参考手册 Python Bindings 与 Python 的绑定 Design Philosophy 设计原理 Performance Evaluation 性能评估 Revision History 修订历史 Acknowledgments 鸣谢 13. Boost.Program_options Introduction 简介 Tutorial 教程 Library Overview 库的概览 How To 如何使用 Design Discussion 设计讨论 Acknowledgements 鸣谢 Reference 参考手册 14. Boost.PropertyTree What is Property Tree? 属性树是什么? Five Minute Tutorial 五分钟入门 Property Tree as a Container 作为容器的属性树 Property Tree Synopsis 属性树概要 How to Populate a Property Tree 如何填充属性树 How to Access Data in a Property Tree 如何访问属性树中的数据 Appendices 附录 Reference 参考手册 15. Boost.Proto Preface 序言 Users' Guide 用户指南 Reference 参考手册 Appendices 附录 16. Boost.Ref Introduction 简介 Reference 参考手册 Acknowledgements 鸣谢 17. Boost.Signals Introduction 简介 Tutorial 教程 Reference 参考手册 Frequently Asked Questions 常见问题 Design Overview 设计概览 Design Rationale 设计原理 Testsuite 测试套件 18. Boost.Signals2 Introduction 简介 Tutorial 教程 Example programs 示例程序 Reference 参考手册 Thread-Safety 线程安全性 Frequently Asked Questions 常见问题 Design Rationale 设计原理 Signals2 API Changes API的变化 Testsuite 测试套件 19. Boost.StaticAssert Overview and Tutorial 概览与教程 How it works 如何工作 Test Programs 测试程序 20. Boost String Algorithms Library Introduction 简介 Release Notes 发布说明 Usage 用法 Quick Reference 快速参考 Design Topics 设计要点 Concepts 概念 Reference 参考手册 Rationale原理 Environment 环境 Credits 鸣谢 21. Thread Overview 概览 Changes since boost 1.35 从 boost 1.35 后的改变 Thread Management 线程管理 Synchronization 同步 Thread Local Storage 线程局部存储 Date and Time Requirements 日期与时间要求 Acknowledgments 鸣谢 22. Boost.TR1 Introduction 简介 Usage 用法 Configuration 配置 TR1 By Subject 分类 TR1 By Header 头文件 Implementation 实现 Testing 测试 23. Boost.Tribool Introduction 简介 Tutorial 教程 Reference 参考手册 Testsuite 测试套件 24. Boost.Typeof Motivation 动机 Tutorial 教程 Reference 参考手册 Other considerations and tips 其它考虑和提示 Contributed By: 贡献者 Acknowledgements 鸣谢 25. Boost.Units 1.0.0 Introduction 简介 Quick Start 快速入门 Dimensional Analysis 量纲分析 Units 单位 Quantities 数量 Examples 例子 Utilities 工具 Reference 参考手册 Installation 安装 FAQ 常见问题 Acknowledgements 鸣谢 Help Wanted 所需帮助 Release Notes 发布说明 TODO 待办事项 26. Boost.Unordered Introduction 简介 The Data Structure 数据结构 Equality Predicates and Hash Functions 等同性谓词与散列函数 Comparison with Associative Containers 与关联式容器的比较 Implementation Rationale 实现原理 Change Log 变更历史 Reference 参考手册 Bibliography 参考书目 27. Boost.Variant Introduction 简介 Tutorial 教程 Reference 参考手册 Design Overview 设计概览 Miscellaneous Notes 杂项说明 References 参考 28. Boost.Xpressive Preface 序言 User's Guide 用户指南 Reference 参考手册 Acknowledgments 鸣谢 Appendices 附录

2015-03-18

nedmalloc-v1.10-beta3

nedmalloc是一个跨平台的高性能多线程内存分配库 很多库都使用它 例如:OGRE Windows XP Linux 2 4 series FreeBSD 6 series Mac OS X 10 4 or earlier 方法: 首先 安装python2 7; 然后安装scons http: www scons org 将Python27的安装目录加到path当中; 由于scons依赖Python 所以安装后 需要把xx Python27 Scripts也加到path当中 这样控制台当中才能识别scons命令; 运行nedmalloc加压目录下的 MakeMSVCProjs bat脚本 会自动构建vc工程出来; 注意: 构建工程前 需要添加系统环境变量:LIB INCLUDE; 我的是: LIB C: Program Files x86 Microsoft Visual Studio 10 0 VC lib;C: Program Files x86 Microsoft SDKs Windows v7 0A Lib; INLUCDE C: Program Files x86 Microsoft SDKs Windows v7 0A Include;C: Program Files x86 Microsoft Visual Studio 10 0 VC include">nedmalloc是一个跨平台的高性能多线程内存分配库 很多库都使用它 例如:OGRE Windows XP Linux 2 4 series FreeBSD 6 series Mac OS X 10 4 or earlier 方法: 首先 安装python2 7; 然后安装scons http: www scons org 将Python27的安装目录加到path当中 [更多]

2015-03-10

wxWidgets中文手册(pdf)

wxWidgets是一个开源的跨平台的C++构架库(framework)(主页http://www.widgets.org),它可以提供GUI(图形用户界面)和其它工具。目前的2.x版本支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。一个支持OS/2的版本正在开发中。    wxWidgets在最开始是由爱丁堡(Edinburgh)大学的人工智能应用学院开发的,主要是内部使用,而在1992年第一次公布。 2.x版本做了很大程度的改良,并且由Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik和更多其他的人所编写和维护。   wxWidgets的主体是由C++构建的,但你并不是必需通过C++才能使用wxWidgets.wxWidgets拥有许多其它语言的绑定(binding),使你在用其它语言编写程序的时候也可以使用wxWidgets.   * wxPython a Python binding,   * wxPerl a Perl binding,   * wxBasic a Basic binding,   * wxLua a Lua binding,   * wxJavaScript a JavaScript binding,   * wxJava a Java binding by Steve Perkins,   * wx4j a Java binding by Dave Dribin,   * wxRuby a Ruby binding,   * wxEiffel an Eiffel binding,   * wxHaskell a Haskell binding,   * wx.NET a C# binding for .NET/Mono,   * wxEuphoria a Euphoria binding,   * wxAda the start of an Ada binding for wxWidgets.   wxwidgets是一个 c++编写的用来提供gui开发的框架。它包含一个可以支持现今几乎所有操作系统(Version 2 currently supports all desktop versions of MS Windows, Unix with GTK+, Unix with Motif, and MacOS. An OS/2 port is in progress.)的GUI库和其他一些很有用的工具,提供了类似MFC的功能。而且,特别要说一下,这个c++lib还的新版本还提供了对掌上电脑的支持。当然,说到这里很多人会想到java队多系统的支持,其实这是不一样的,java的跨平台是建立在“中间代码”的基础上的,就是说需要在目标平台上安装java解释器;但是wxwidgets是c++库,经过编译后,他提供的是native级的机器码,在gui编程方面,这可是意味着很大的不同!   那么wxwidgets有什么特别之处呢?比起其他的跨平台gui库,有什么好处呢?   1、(不得不放在第一位的)就是他无论对于个人还是对于商业应用都[font color=#ff0000]免费[/font]!   ——它的主体框架的授权协议支持商业免费应用,其外围功能库中很多也是lgpl授权的,这无疑对于我等“0资本”的人来说是天大的好事。不同于gt之类的跨平台gui库。    2、 他是跨平台的gui库,支持的操作系统很全面,甚至支持pda(说不定过一段时间他都能够支持symbian了)。   —— 此跨平台非彼跨平台,它虽然不像java那样是“全面”的,而仅仅是gui库,但是gui是计算机编程中,最为麻烦、耗费时间、容易出现bug的部分,特别当你想要自己的软件运行在多个操作系统上的时候,开发和维护的难度让人难以想象。其实c++也是支持“跨平台”的,因为c++可以在任何平台上编译运行,之所以没几个人说他是跨平台的,主要问题就出在变量长度和各操作系统的gui(这里的“界面”我指得是很广义的)上,如果解决了gui的问题,基本上就解决了c++的“跨平台”问题——至少不用为每种平台都维护一份源代码了。   3、 wxwidgets提供的gui是大量使用宏的,这就意味着它是在尽可能的使用目标系统native的gui样式。   ——你可以访问wxwidgets网站,看看那些开发的软件的截图,全是系统native级别的。如果你开发了一个xp系统的软件的话,你的软件会仍然以“xp专有的‘小贱人’级别”的面貌展现在你面前。   4、 它支持的编译器也很多,而且borland也曾声明将在c++builderx2里边提供对wxidgets的支持——预览版都出来了。   ——其实我就是看到borland在c++不景气的时候,这么看重这个东东,甚至用它来做“王牌”,才开始注意到他的。当然,反过来,也正是borland的支持,才使他活力大发的。   5、 自然,有牛X支持,而且是开源的,wxwidgets一直都在快速稳健的开发中,其周边工具也越来越多。   —— 随着m$开始全力支持他的.net,c++成了“没落”的语言,但是不可否认,c++还是有很多用武之地的,所以根本不可能真正没落。没有了超牛X的支持,地球人自然开始寻求新的发展方式,wxwidgets这种开源免费,且允许商业应用的好东东,自然会被人们所重视。   当然,wxwidgets也有一些不足,比如官方文档不全(至少我觉得个官方的help远远不够我的菜鸟需求,大部分都是网络上零散的教程),特别是没有源代码的开发速度快;没有强大全面的rad工具;还没有形成很浓的产业气候,等等。但是,个人觉得它的好处绝对大于它的缺点,而且很有发展前途。

2015-01-22

KeUserModeCallback

KeUserModeCallback

2014-09-08

zlib-1.2.8 静态库(VS2008用)

编译默认的库老是显示 无法解析的 _uncompress 之类 把代码重新新建工程编译了一下就解决了 编译环境: VS2008 ZLIB版本: 1.2.8 把头文件放在include目录 lib放在lib目录 使用: #include <zlib.h> #pragma comment(lib,"zlib.lib")

2014-08-19

vc++ 6.0 补丁

vc++ 6.0 补丁,有它就不会编译时假死。

2014-07-13

openssl 收发邮件

支持 smtp,pop3,imap

2014-07-10

超好用的十六进制批量搜索软件

最近搞游戏汉化,需要进行批量的16进制字节搜索,在Google上爬了很久,都没有找到合适的软件,都是功能太简单或者效果不好。好不容易找到一个可以用的,号称极速搜索的软件,但是似乎软件还有些问题,程序容易崩溃,特别是当搜索的内容过多的时候,于是就打算自己做一个,随便也试试C#的效率。 结果C#效率不是传说中的那么低嘛,呵呵,而且这个搜索器还有优化的空间,在比较字节的算法上应该还可以优化,只是暂时还没有想到好的算法。 源代码会在GitHub上共享,用户名就是Title上那个。

2014-04-15

Notepad++ 转16进制插件

notepad++ 中转十六进制的插件 只要复制到Notepad++ 下的plugins目录就能下载 之后再Notepad++中可以自定义一下快捷键 运行--&gt; 管理快捷键

2014-03-25

300多种加密解密算法(C++)源代码

现在是个程序都得加个密,但不会怎么办~现在就有C++海量的加密源码给你学习。 300多种C++加密解密算法的源码,想看看加密方式的就下吧。

2014-03-08

高效程序的奥秘 书上代码

<<高效程序的奥秘>> Herry S. Warren, Jr. 著 冯速 译 原书示例程序 函数: nlz, Gray, pop, transpose8, Hilbert, divmnu ......

2009-11-27

Strassen Algorithm

Solution: http://blog.csdn.net/tiandyoin/archive/2009/09/18/4564811.aspx

2009-09-18

OpenMP 入门程序 --- 手把手教你学会并行程序

这是一个OpenMP入门的程序包,包括各种指令和函数的用法,基本模板,从 sourceForge 上一个牛B的项目里抽取出来的,很适合初学者入门参考,可参考 周伟明写的 <>

2009-08-27

MF算法 --- 传说后缀数组中最快的构建法

Giovanni Manzini and Paolo Ferragina 吸取了前人多种经验,结合n个算法,组建了最快的sa构建法.2005年新出的算法.是GNU开源项目,竞赛中 1000万的数据是 1 s,文件相当多,不能写在博客里,linux源码可以看: http://www.mfn.unipmn.it/~manzini/lightweight 如果不会用,就下载本C++ 多串匹配程序包吧

2009-08-26

后缀数组PPT详细解答

内容: 许智磊后缀数组的pdf 本人解说的ppt 制作的mdl 有错误请指正...

2009-07-25

100位的双精度算法---扩充int64

typedef struct int100{ //100位长整数,以补码存储 __int64 low; //低0 ... 2^51-1位 51 .. 63 位置空,作溢出时保留数据用 __int64 top; //高0 ... 2^61-1 //__int64 sign; //符号位在高位的 第0+61位 62 位作借位用, 63位置空 //__int64 size; //范围 -2^112 ...2^112-1 //int100(){low=0;top=0;sign=0;size=1;} //默认为0 //int100(__int64 _low,__int64 _top,__int64 _sign,__int64 _size){ // low=_low;top=_top;sign=_sign;size=_size; //} int100(){low=0;top=0;} int100(__int64 _low,__int64 _top){ low=_low;top=_top; } }int100; int100 to_source(int100 a){//补码转原码 int100 to_patch(int100 b)//原码转补码 int100 add(int100 a,int100 b) int100 sub(int100 a,int100 b) 要下就下,别在这里瞎评论! Coding by Tiandy

2009-07-25

CSOpenGL User Manual

This is OpenGL API for C#, User manual as English

2009-05-22

Mpich 与 三服务器 自动配置脚本

nis,nfs,sshd配合mpich的配置脚本,实现全过程自动化,省力省气. 依据我的文章 mpich完整配置 所写. 通过主脚本master.set.sh和client.set.sh调用子脚本配置. 以操作每个文件为单位,分写每个.sh. 目前针对 root 用户 why.txt 会回答你的各种问题 有一两个配置文件是隐藏的. 如 .mpd.hosts.set.sh 操作: 打开一个终端,cd 到脚本目录,分别运行两个主文件. 实验平台: redhat 9.0 己经 安装 nis,nfs,ssh 服务器或客户端. 已经 配置好DHCP 服务器,因为脚本是根据dhcpd 自动获取 IP 和 主机名的. vmware 6.5 宿主机 win xp sp2 番茄花园 date:2009:05:01

2009-05-17

擦除cpp文件中的 // 和 /* */ 的注释的小程序

//本程序针对 vc++ 6.0 编译器语法,使用者要保证测试 \用例能在 vc++ 6.0 下编译通过 \ 用此程序可以自动帮你去除cpp文件中繁多的注释. 附带几十个不同的测试用例,还有文档说明

2009-03-24

大整数乘法---快速傅立叶变换(FFT)

离散傅里叶变换(DFT)的快速算法(FFT),它在大整数乘法上的应用,本文不用复数根,从整数MOD P的角度建立新算法。

2008-11-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除