当前位置: 首页 > backend >正文

Rust与C/C++互操作实战指南

目录

    • 1.前言
    • 2.动态库调用
      • 2.1 动态加载
      • 2.2 静态加载
    • 3.代码调用
    • 4.静态库调用

1.前言

本文原文为:Rust与C/C++互操作实战指南

由于rust诞生时间太短,目前生态不够完善,因此大量的功能库都需要依赖于C、C++语言的历史积累。

而本文将要介绍的便是如何实现rust与c乃至c++之间实现互相调用。

2.动态库调用

首先最方便的还是动态库形式,大量的C语言代码库可以被编译为平台动态库、导出相应的函数,rust直接加载对应的动态库完成调用,这也是目前使用最广的方式。

比如rust中的windows、fltk-rs等等,由于它们之前已经用C语言实现了大量的代码、十几年、乃至几十年的积淀,短时间内难以用rust重写一遍。

所以为了能让rust可以使用它们,常常就是采用动态库调用的方式。

比如在windows系统上,一个最简单常用的winapi:MessagBoxW,该函数用于弹出一个窗口。

此时如果我们想要在rust代码中调用这个函数(在没有官方提供的windows crate前提下),那么就可以先去官方文档看看它所在位置

http://www.xdnf.cn/news/3889.html

相关文章:

  • 大型网站架构演化过程:从单体到分布式服务的全景解析
  • RR(Repeatable Read)级别如何防止幻读
  • 31.软件时序控制方式抗干扰
  • maven坐标导入jar包时剔除不需要的内容
  • C++类_协变返回类型
  • 【KWDB 创作者计划】_KWDB 性能优化与调优
  • redis的持久化
  • Spring的循环依赖问题
  • 工业认知智能:从数据分析到知识创造
  • 自由学习记录(58)
  • Android逆向学习(八)Xposed快速上手(上)
  • GitLab CI/CD变量使用完全指南
  • 修复笔记:SkyReels-V2 项目中的 torch.cuda.amp.autocast 警告和错误
  • 2025年- H24-Lc132-94. 二叉树的中序遍历(树)---java版。
  • 施磊老师rpc(四)
  • QT开发工具对比:Qt Creator、Qt Designer、Qt Design Studio
  • Redis 数据类型详解(一):String 类型全解析
  • RabbitMQ 深度解析:从核心组件到复杂应用场景
  • nt!MiSessionAddProcess函数分析和nt!MmSessionSpace全局变量的关系
  • DeepSeek Copilot idea插件推荐
  • 架构思维:使用懒加载架构实现高性能读服务
  • 运算放大器的主要技术指标
  • 【浅尝Java】变量与数据类型(含隐式类型转换、强制类型转换、整型与字符串互相转换等)
  • JWT解析
  • WebRTC 服务器之Janus视频会议插件信令交互
  • docker:制作镜像+上传镜像+拉取镜像
  • 前端 uni-app 初步使用指南
  • javaEE——单例模式
  • FreeRTOS菜鸟入门(十)·消息队列
  • MySQL用户管理