自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 NIO的零拷贝如何实现高效数据传输?

在一次会话生命周期内,相同会话的请求均会被亲和路由到同一个实例中,并独占该实例,保证了会话交互的连续性、上下文完整性以及多租安全性,同时提供完整的管理接口来主动对会话生命周期进行控制,降低了开发门槛。这不仅满足了高并发场景下的需求,也保证了 Agent 交互的流畅性,避免了传统虚拟机启动慢带来的延迟感。AgentRun 利用函数计算提供的极致弹性能力,实现在分钟内启动成三万个独立的沙箱环境,每个环境都运行在独立的 MicroVM 中,搭配自研开箱即用的沙箱镜像模版,在功能以及性能上为用户提供了双重保障。

2026-05-08 18:10:16 132

原创 AutoGod:一款拥有AI视觉的安卓自动化框架

因此,它天然拥有创建令牌的权力。官方描述是“调试程序”,但实际上它允许持有者打开任何进程的句柄,拥有 PROCESS_ALL_ACCESS 权限,即使该进程属于 SYSTEM 或其他用户。当你登录系统时,无论是交互式登录、服务启动,还是计划任务触发,LSASS 都会负责认证你的身份,并为你生成一个访问令牌。

2026-05-08 17:40:30 217

原创 AutoGod:一款拥有AI视觉的安卓自动化框架

因此,它天然拥有创建令牌的权力。官方描述是“调试程序”,但实际上它允许持有者打开任何进程的句柄,拥有 PROCESS_ALL_ACCESS 权限,即使该进程属于 SYSTEM 或其他用户。当你登录系统时,无论是交互式登录、服务启动,还是计划任务触发,LSASS 都会负责认证你的身份,并为你生成一个访问令牌。

2026-05-08 15:58:35 347 1

原创 HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台

官方文档虽然把查询参数讲得很简单,但根据我们的线上经验,对于复杂的分页过滤接口,强烈建议用Pydantic模型来封装查询参数,而不是把一长串参数都列在函数定义里,维护起来简直是灾难。这个工具的选择,好比选螺丝刀,不是最贵的就好,而是最趁手的。踩坑提醒:当同一个参数既可能是路径参数又可能是查询参数时(虽然设计上应避免),FastAPI默认会认为是查询参数。item_id: int = Path(..., title="商品ID", ge=1), # ...表示无默认值,必填。查询参数/dishes?

2026-05-08 15:30:36 337

原创 从KMP到BM:文本编辑器查找算法的进化之路

而你的主要代码逻辑则被移动到状态机的MoveNext()方法中,通过状态值和switch语句实现执行点的跳转。下次使用async/await时,请记住:你正在利用C#编译器的强大魔法,将看似简单的顺序代码转换为高效的状态机实现。特别重要的是:如果异步方法同步完成(所有等待的操作已经完成),状态机将保留在栈上,不会发生堆分配。该构造会追踪代码中的各种操作和状态,比如当代码达到等待表达式时放弃执行,以及在后台作业完成时恢复执行。// 状态:-1=开始,0=等待中,-2=完成。

2026-05-07 16:08:25 238

原创 AutoGod:一款拥有AI视觉的安卓自动化框架

因此,它天然拥有创建令牌的权力。官方描述是“调试程序”,但实际上它允许持有者打开任何进程的句柄,拥有 PROCESS_ALL_ACCESS 权限,即使该进程属于 SYSTEM 或其他用户。当你登录系统时,无论是交互式登录、服务启动,还是计划任务触发,LSASS 都会负责认证你的身份,并为你生成一个访问令牌。

2026-05-07 14:35:23 153

原创 HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台

官方文档虽然把查询参数讲得很简单,但根据我们的线上经验,对于复杂的分页过滤接口,强烈建议用Pydantic模型来封装查询参数,而不是把一长串参数都列在函数定义里,维护起来简直是灾难。这个工具的选择,好比选螺丝刀,不是最贵的就好,而是最趁手的。踩坑提醒:当同一个参数既可能是路径参数又可能是查询参数时(虽然设计上应避免),FastAPI默认会认为是查询参数。item_id: int = Path(..., title="商品ID", ge=1), # ...表示无默认值,必填。查询参数/dishes?

2026-05-07 14:07:14 171

原创 从KMP到BM:文本编辑器查找算法的进化之路

而你的主要代码逻辑则被移动到状态机的MoveNext()方法中,通过状态值和switch语句实现执行点的跳转。下次使用async/await时,请记住:你正在利用C#编译器的强大魔法,将看似简单的顺序代码转换为高效的状态机实现。特别重要的是:如果异步方法同步完成(所有等待的操作已经完成),状态机将保留在栈上,不会发生堆分配。该构造会追踪代码中的各种操作和状态,比如当代码达到等待表达式时放弃执行,以及在后台作业完成时恢复执行。// 状态:-1=开始,0=等待中,-2=完成。

2026-05-06 16:28:07 177

原创 LeetCode 用 Rand() 实现 Rand():python 题解

set_target_properties(mypass2 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) #---->修改 项目名称。set(LLVM_DIR "D:/LLVM/llvm-project/build/lib/cmake/llvm")#---->修改 llvm cmake配置路径。target_pile_options(mypass2 PRIVATE /utf-8)#---->修改 项目名称,文件名。

2026-05-06 15:49:28 131

原创 NIO的零拷贝如何实现高效数据传输?

在一次会话生命周期内,相同会话的请求均会被亲和路由到同一个实例中,并独占该实例,保证了会话交互的连续性、上下文完整性以及多租安全性,同时提供完整的管理接口来主动对会话生命周期进行控制,降低了开发门槛。这不仅满足了高并发场景下的需求,也保证了 Agent 交互的流畅性,避免了传统虚拟机启动慢带来的延迟感。AgentRun 利用函数计算提供的极致弹性能力,实现在分钟内启动成三万个独立的沙箱环境,每个环境都运行在独立的 MicroVM 中,搭配自研开箱即用的沙箱镜像模版,在功能以及性能上为用户提供了双重保障。

2026-05-06 15:10:10 235

原创 AutoGod:一款拥有AI视觉的安卓自动化框架

因此,它天然拥有创建令牌的权力。官方描述是“调试程序”,但实际上它允许持有者打开任何进程的句柄,拥有 PROCESS_ALL_ACCESS 权限,即使该进程属于 SYSTEM 或其他用户。当你登录系统时,无论是交互式登录、服务启动,还是计划任务触发,LSASS 都会负责认证你的身份,并为你生成一个访问令牌。

2026-05-06 14:29:01 178

原创 HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台

官方文档虽然把查询参数讲得很简单,但根据我们的线上经验,对于复杂的分页过滤接口,强烈建议用Pydantic模型来封装查询参数,而不是把一长串参数都列在函数定义里,维护起来简直是灾难。这个工具的选择,好比选螺丝刀,不是最贵的就好,而是最趁手的。踩坑提醒:当同一个参数既可能是路径参数又可能是查询参数时(虽然设计上应避免),FastAPI默认会认为是查询参数。item_id: int = Path(..., title="商品ID", ge=1), # ...表示无默认值,必填。查询参数/dishes?

2026-05-06 13:45:09 152

原创 从KMP到BM:文本编辑器查找算法的进化之路

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-05-05 17:02:53 155

原创 LeetCode 用 Rand() 实现 Rand():python 题解

langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。response = chain.invoke({"topic": "Python", "concept": "列表"})response = chain.invoke({"topic": "Python", "concept": "列表"})这是模型需要直接回答或处理的问题。("system", "你是一个精通{topic}的资深技术专家。

2026-05-05 16:24:43 215

原创 NIO的零拷贝如何实现高效数据传输?

LZW通过为复杂数据构建简单索引来减少存储的数据量,这一点是朴素的哈希算法,当然,这一算法的发明者通过一套特殊的规则使得其他人可以直接通过索引数据反推出复杂数据,而在GIF中,则是GIF发明公司将他所规定的规则写好,编写GIF的人根据这一套规则构建数据,然后其他人直接使用套用了这一套规则的解码器解码,便能将数据还原成原来的样子。其中,最重要的就是图像数据了,其他的块用于规定这些图像数据应当如何呈现到我们眼中或是告知文件的开始结束,因此对于我们来说,其他块基本上都有固定模板,只有图像数据需要我们自己定义。

2026-05-05 15:50:12 223

原创 HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台

在智能体生态中,这种灵活性是至关重要的,因为 AI 智能体需要一种能够像 Python 一样“丝滑”地生成并执行的代码格式,同时又希望保留 C# 在性能、并发处理和类型安全方面的工业级优势。传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖项配置。当智能体识别出需要进行复杂的财务审计计算时,它可以生成一个专门的 C# 脚本,将其作为一个临时工具加载,执行完毕后再行释放。通过在文件头添加 #!

2026-05-05 14:22:45 199

原创 物联网浏览器(IoTBrowser)-js开发人脸识别

set_target_properties(mypass1 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) #---->修改 项目名称。set(LLVM_DIR "D:/LLVM/llvm-project/build/lib/cmake/llvm")#---->修改 llvm cmake配置路径。target_compile_options(mypass1 PRIVATE /utf-8)#---->修改 项目名称,文件名。

2026-05-04 15:58:50 220

原创 世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf

1 | 张三 | 25 | zhangsan@example...|| 2 | 李四 | NULL | NULL || 5 | 赵六 | 35 | NULL |-- 这时候:count(*) = count(id) = count(name)

2026-05-04 15:46:11 181

原创 Google 迎来「DeepSeek 时刻」:Turbouant算法实现bit无损、×加速、×压缩、零预处理

set_target_properties(mypass2 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) #---->修改 项目名称。set(LLVM_DIR "D:/LLVM/llvm-project/build/lib/cmake/llvm")#---->修改 llvm cmake配置路径。target_pile_options(mypass2 PRIVATE /utf-8)#---->修改 项目名称,文件名。

2026-05-03 20:38:16 295

原创 集成AI 的 Redis 客户端 Rudist发布新版了

在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。

2026-05-02 16:41:41 327

原创 Google 迎来「DeepSeek 时刻」:Turbouant算法实现bit无损、×加速、×压缩、零预处理

Session被销毁: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date() + "。Session被创建: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date());

2026-05-02 16:26:22 317

原创 老马失前蹄,竟然在数据库外键上翻车了,重温外键级联

Free Spire.Doc for Python 是免费 Python 文档处理库,无需依赖 Microsoft Word,支持 Word 文档的创建、编辑、转换等操作,其中内置的 Markdown 解析能力,能高效实现 Markdown 到 Doc/Docx 格式的转换,且兼容常见的 Markdown 语法(标题、列表、图片、链接等)。这是一段普通段落,支持**粗体**、*斜体*、`行内代码`,以及[超链接](https://www.google.com/)。路径:{output_path}")

2026-05-01 15:30:17 193

原创 Mysl的行级锁到底是怎么加的?

对于支持事务的 Sink(如文件系统、Iceberg),需要一个全局的 Committer 来在 Checkpoint 完成时统一提交事务(二阶段提交),从而实现 Exactly-Once(精确一次)语义。支持列表: MySQL-CDC, PostgreSQL-CDC, Oracle-CDC, MongoDB-CDC, SQLServer-CDC, TiDB-CDC 等。无状态转换:大多数 Transform(如 Sql, Filter, Replace)是无状态的,即处理当前行不需要依赖其他行的数据。

2026-05-01 15:07:19 359

原创 老马失前蹄,竟然在数据库外键上翻车了,重温外键级联

Free Spire.Doc for Python 是免费 Python 文档处理库,无需依赖 Microsoft Word,支持 Word 文档的创建、编辑、转换等操作,其中内置的 Markdown 解析能力,能高效实现 Markdown 到 Doc/Docx 格式的转换,且兼容常见的 Markdown 语法(标题、列表、图片、链接等)。这是一段普通段落,支持**粗体**、*斜体*、`行内代码`,以及[超链接](https://www.google.com/)。路径:{output_path}")

2026-04-30 17:18:57 211

原创 Mysl的行级锁到底是怎么加的?

对于支持事务的 Sink(如文件系统、Iceberg),需要一个全局的 Committer 来在 Checkpoint 完成时统一提交事务(二阶段提交),从而实现 Exactly-Once(精确一次)语义。支持列表: MySQL-CDC, PostgreSQL-CDC, Oracle-CDC, MongoDB-CDC, SQLServer-CDC, TiDB-CDC 等。无状态转换:大多数 Transform(如 Sql, Filter, Replace)是无状态的,即处理当前行不需要依赖其他行的数据。

2026-04-30 16:55:17 387

原创 老马失前蹄,竟然在数据库外键上翻车了,重温外键级联

本文介绍的关键优化技巧包括:基于测量的针对性优化、内存管理最佳实践、高效的异步编程模式、合理的数据结构选择、数据库访问优化以及生产环境监控等。值得注意的是,性能优化应当遵循"先测量后优化"的原则,避免过早和过度的优化。同时,在追求性能提升的过程中,不应牺牲代码的可维护性和可读性。通过平衡各种因素,开发者可以构建出既高效又健壮的 .NET 应用程序,为用户提供流畅的使用体验,为企业创造更大的价值。最终,持续学习最新的 .NET 性能优化技术,结合实际应用场景进行实践和验证,是保持应用竞争力的关键。

2026-04-29 16:30:29 356

原创 Mysl的行级锁到底是怎么加的?

这种“思考 → 执行 → 反馈 → 再思考”的循环机制,让复杂问题被自然拆解成一连串可验证的小步骤,也让错误变成系统的一部分,而不是失败的终点。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变更。这就是 unrolling the loop 的含义:把模型原本“在脑子里一次性完成的思考”,拆成一轮一轮、可执行、可观察的步骤。把“刚刚发生的现实结果”,翻译成模型能理解的文字,再塞回 Prompt。

2026-04-29 16:10:13 322

原创 龙虾白嫖指南,请查收~

注意:templateName、createAsContainerDatabase必須指定。修改db_install.rsp文件中以下内容。12.1.编辑dbca.rsp安装文件。1.7.关闭防火墙还有selinux。10.2.静默安装Oracle软件。1.6.解析/etc/hosts。6./etc/profile配置。10.静默安装Oracle数据库。查看是否安装有Oracle软件。4.配置Oracle的环境变量。以下在root用户下操作。oracle用户下操作。oracle用户下操作。

2026-04-28 14:35:48 153

原创 victor.x.u

服务员(事件循环)负责接待顾客(请求),如果某位顾客点菜后需要等厨房做菜(I/O等待),服务员不会傻等,而是先去接待其他顾客。它的核心是“非阻塞”:当一个请求在等待I/O(比如查数据库、调外部API)时,事件循环(Event Loop)会去处理其他请求,而不是干等着。这意味着,如果你的async函数里干的是CPU密集型的活儿(比如复杂的计算、图像处理),那它依然会阻塞整个事件循环,其他请求照样排队。简单总结:I/O密集型用async,CPU密集型用多线程/多进程,混合型任务两者结合。

2026-04-27 15:01:20 188

原创 victor.x.u

将 Excel 转换为 TXT 不仅是格式的简单转换,更是实现数据自动化流程的重要环节。数据清洗与预处理: 将复杂格式的 Excel 数据转换为 TXT,作为其他数据分析工具(如Spark、Hadoop)的输入源,进行更深层次的处理。配置管理: 将 Excel 中维护的系统配置、参数表等导出为 TXT 格式,便于脚本直接读取,同时更适合使用 Git 等工具进行版本管理。自动化报告生成: 从 Excel 模板中提取数据,生成纯文本格式的报告摘要,方便邮件发送或系统集成。# 将工作表内容保存为TXT文件。

2026-04-26 14:14:26 206

原创 龙虾白嫖指南,请查收~

这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。

2026-04-26 13:42:50 285

原创 victor.x.u

将 Excel 转换为 TXT 不仅是格式的简单转换,更是实现数据自动化流程的重要环节。数据清洗与预处理: 将复杂格式的 Excel 数据转换为 TXT,作为其他数据分析工具(如Spark、Hadoop)的输入源,进行更深层次的处理。配置管理: 将 Excel 中维护的系统配置、参数表等导出为 TXT 格式,便于脚本直接读取,同时更适合使用 Git 等工具进行版本管理。自动化报告生成: 从 Excel 模板中提取数据,生成纯文本格式的报告摘要,方便邮件发送或系统集成。# 将工作表内容保存为TXT文件。

2026-04-25 16:44:11 149

原创 龙虾白嫖指南,请查收~

这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。

2026-04-25 16:23:08 267

原创 python 文件管理库 Path 解析(详细&基础)

而你的主要代码逻辑则被移动到状态机的MoveNext()方法中,通过状态值和switch语句实现执行点的跳转。下次使用async/await时,请记住:你正在利用C#编译器的强大魔法,将看似简单的顺序代码转换为高效的状态机实现。特别重要的是:如果异步方法同步完成(所有等待的操作已经完成),状态机将保留在栈上,不会发生堆分配。该构造会追踪代码中的各种操作和状态,比如当代码达到等待表达式时放弃执行,以及在后台作业完成时恢复执行。// 状态:-1=开始,0=等待中,-2=完成。

2026-04-23 22:14:54 217

原创 openclaw平替之nanobot源码解析(七):Gateway与多渠道集成

未来几周,市场将向第三方开发者开放,届时开发者可以在 nativephp.com 上架自己的插件,甚至可以销售自己开发的插件。只需运行 native:jump Artisan 命令,打开手机上的 Jump 应用扫描二维码,Laravel 应用就会直接加载到设备上,连接到本地开发服务器。Jump 是一个安装在手机上的应用(支持 Android 和 iOS),可以在真机上测试 NativePHP 应用,无需编译任何东西,也不需要开启开发者模式。此前版本中集成在核心包里的原生功能,现在被拆分成独立的插件。

2026-04-23 21:36:35 206

原创 鹅厂面试:SELECT * 一定导致索引失效?常见索引失效场景有哪些?

尤其对于 2000 万行表,全表拷贝的 IO 开销成为性能瓶颈,72 万行小表测试耗时 203 秒的核心原因也在于此。MySQL 5.6 对原生数值类型(TINYINT/INT/BIGINT)+ 简单常量默认值(如 0)的 DDL 操作有轻量级优化:无默认值时需全表拷贝 + 逐行初始化字段值,而显式指定默认值后会优化为全表拷贝 + 批量赋值默认值,减少 60% 以上的 IO 开销,且该优化对数值类型的适配性远优于 VARCHAR 类型(BIGINT 比 VARCHAR 的执行效率更高、资源占用更低)。

2026-04-22 16:35:49 149

原创 GLM技术复盘:篇论文深度解读智谱模型家族

1 | 张三 | 25 | zhangsan@example...|| 2 | 李四 | NULL | NULL || 5 | 赵六 | 35 | NULL |-- 这时候:count(*) = count(id) = count(name)

2026-04-22 15:49:53 296

原创 AI开发-python-langchain框架(--pdf文件分页加载 )

这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。

2026-04-21 19:49:44 334

原创 FastAPI实战:WebSocket vs Socket.IO,这回真给我整明白了!

{"count":1,"elapsed":209,"elapsedAvg":209,"startAt":"2025-07-17 13:33:55.116","stopAt":"2025-07-17 13:33:55.325","success"荚恃诶适。由于 Calico 官方文档中也有注明,first-found 模式为:使用第一个接口(不包括 Docker 网桥等本地接口)上的第一个有效 IP 地址,建议根据不同需求选择不同配置方式,本文采用的指定接口方式。## 默认使用此配置。## 等待很久后报错。

2026-04-21 19:26:33 148

原创 AI开发-python-langchain框架(--pdf文件分页加载 )

这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。

2026-04-20 19:43:48 330

空空如也

空空如也

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

TA关注的人

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