[SWIG] 在VS中运行SWIG的官方示例

2024-02-13 11:48
文章标签 运行 vs 示例 官方 swig

本文主要是介绍[SWIG] 在VS中运行SWIG的官方示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官方示例地址:https://github.com/swig/swig/tree/master/Examples
原文地址:https://www.yuque.com/cppdev/swig/ip3nfo

文章目录

  • 在VS中运行csharp\class示例
    • 打开VS工程,并进行配置
    • 调用SWIG
    • 编译C++的包装文件
    • C#使用
  • 后语

在VS中运行csharp\class示例

要求,本机已经安装了SWIG

.\swig\Examples\csharp\class举例

打开VS工程,并进行配置

(1)打开example.sln

(2)点击确定
请添加图片描述

(3)右键example > 重定向项目 > 选择一个你本机安装的Windows SDK版本

(4)右键example/example.i > 属性 > 自定义生成工具 > 常规 > 命令行
..\..\..\swig.exe改成swig(直接调用本机安装的swig)
请添加图片描述

调用SWIG

(5)右键example/example.i > 编译
编译生成了以下文件

class
├── example_wrap.cxx		C++代码的包装器
├── examplePINVOKE.cs		从dll中加载C++的变量、函数、类等内容
├── example.cs					以下文件都是C#的接口文件
├── Circle.cs
├── Shape.cs
└── Square.cs

编译C++的包装文件

(6)编译example工程

C#使用

(7)编译example-cs工程

(8)将生成example.dll拷贝到E:\cpp\swig_study\swig\Examples\csharp\class\bin\x86\Debug目录下

(9)运行example-cs

请添加图片描述

后语

如果想了解SWIG原理,可参考《HelloSWIG》

这篇关于[SWIG] 在VS中运行SWIG的官方示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/705454

相关文章

Java中的stream流分组示例详解

《Java中的stream流分组示例详解》Java8StreamAPI以函数式风格处理集合数据,支持分组、统计等操作,可按单/多字段分组,使用String、Map.Entry或Java16record... 目录什么是stream流1、根据某个字段分组2、按多个字段分组(组合分组)1、方法一:使用 Stri

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Go中select多路复用的实现示例

《Go中select多路复用的实现示例》Go的select用于多通道通信,实现多路复用,支持随机选择、超时控制及非阻塞操作,建议合理使用以避免协程泄漏和死循环,感兴趣的可以了解一下... 目录一、什么是select基本语法:二、select 使用示例示例1:监听多个通道输入三、select的特性四、使用se

MySQL实现多源复制的示例代码

《MySQL实现多源复制的示例代码》MySQL的多源复制允许一个从服务器从多个主服务器复制数据,这在需要将多个数据源汇聚到一个数据库实例时非常有用,下面就来详细的介绍一下,感兴趣的可以了解一下... 目录一、多源复制原理二、多源复制配置步骤2.1 主服务器配置Master1配置Master2配置2.2 从服

Python中的sort()和sorted()用法示例解析

《Python中的sort()和sorted()用法示例解析》本文给大家介绍Python中list.sort()和sorted()的使用区别,详细介绍其参数功能及Timsort排序算法特性,涵盖自适应... 目录一、list.sort()参数说明常用内置函数基本用法示例自定义函数示例lambda表达式示例o