C#调用C++ dll函数传参及参数类型转换

本文详细介绍了在C#中如何调用C++编写的dll函数,涉及到多种参数类型的转换,包括基本类型、字符串、数组等。通过实例展示了如何在C#中声明和调用C++的dll函数,提供了有效的参数转换方法。
摘要由CSDN通过智能技术生成

一、简述

在C#中调用C++版的dll函数时,因为是不同的语言,参数类型也不尽相同,需要做一些转换。因为在网上能找到的答案也是很杂乱,对此不懂的人会搞到发狂。最近碰到一些项目需要在C#中调用C++版dll,所以一通捣鼓,总结了部分经验。【提示:C#调用C++库,需要dll和lib就可以了,不需要头文件

二、亲测有效的一些参数类型转换

1、基本类型int、float、bool,C++中与C#中是相同的;

(1)C++ dll 函数

void init(int a, float b, bool c);

(2)C#中声明C++ dll中的函数

[System.Runtime.InteropServices.DllImport("TEST_DLL")]

public static extern void init(int a, float b, bool c);

注意:TEST_DLL是C++ dll的名称。

(3)C#中调用C++ dll 中的函数

int a = 1;

float b = 2.0f;

bool c = false;

init(a, b, c);

注意:传入参数前先初始化。

2、基本类型参数引用

(1)C++ dll 函数

void init(int &a, float &b, bool &c);

(2)C#中声明C++ dll中的函数

[System.Runtime.InteropServices.DllImport("TEST_DLL")]

public static extern void init(ref int a, ref float b, ref bool c);

注意:TEST_DLL是C++ dll的名称。

(3)C#中调用C++ dll 中的函数

int a = 1;

float b = 2.0f;

bool c = false;

init(ref a, ref b, ref c);

注意:传入参数前先初始化。

3、基本类型参数默认值

(1)C++ dll 函数

void init(int a = 10);

(2)C#中声明C++ dll中的函数

[System.Runtime.InteropServices.DllImport("TEST_DLL")]

public static extern void init(int a = 10);

注意:TEST_DLL是C++ dll的名称。

(3)C#中调用C++ dll 中的函数

int a = 1;

init(a);

4、C++ char*字符串(传入)--> C# string

(1)C++ dll 函数

void init(char* imgPath);</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值