码迷,mamicode.com
首页 > 编程语言 > 详细

C#将String传入C++的char*

时间:2018-04-30 14:39:16      阅读:1544      评论:0      收藏:0      [点我收藏+]

标签:参数   允许   项目   service   调用函数   ops   name   属性   str   

  C++的函数参数列表中包含一个char*的输出型参数,然而在C#调用该dll时候,会自动将函数的中的char*参数“翻译”为sbyte*, 使用了各种方法都不能调用函数,主要是不能合适的转换为sbyte*。

 

1、【项目】->【属性】->【生成】->勾选 【允许不安全代码】

2、引入头文件 using System.Runtime.InteropServices;

3、

string videoName = "ComplexBkg1.avi";
unsafe {
IntPtr intPtrStr = (IntPtr)Marshal.StringToHGlobalAnsi(videoName);
sbyte* sbyteStr = (sbyte*)intPtrStr;
temp.fishTracking(sbyteStr);
}

C#将String传入C++的char*

标签:参数   允许   项目   service   调用函数   ops   name   属性   str   

原文地址:https://www.cnblogs.com/Peit/p/8973371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!