C#调用C++dll方法,char*类型之间的传递
2016-09-15 11:53
771 查看
char*类型之间的传递是关键,下面贴出来具体实现方法:
c++ dll中的函数导出如下:
extern "C" LIB_BASE_PROCESS_API bool _stdcall ExtractImgArea(const char* strSrcFilePath, const char* strOutShpFilePath, bool bReprojectToBL, bool bRemoveInnerBkv=true, double dfSimplifyValue=1);
c#调用方法如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[DllImport(@"ImgBaseProcess.dll", EntryPoint = "ExtractImgArea",
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
extern unsafe static bool ExtractImgArea(StringBuilder src, StringBuilder shp, bool t, bool b, double d);
static void Main(string[] args)
{
double s = 1.0;
StringBuilder strSrc = new StringBuilder("D:\\src.img");
StringBuilder strShp = new StringBuilder("D:\\src.shp");
bool isok = ExtractImgArea(strSrc, strShp, true, true, s);
Console.WriteLine(isok);
Console.ReadKey();
}
}
}
记录以便以后遇到类似问题,便于查询解决,也为广大爱好者提供参考。
c++ dll中的函数导出如下:
extern "C" LIB_BASE_PROCESS_API bool _stdcall ExtractImgArea(const char* strSrcFilePath, const char* strOutShpFilePath, bool bReprojectToBL, bool bRemoveInnerBkv=true, double dfSimplifyValue=1);
c#调用方法如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[DllImport(@"ImgBaseProcess.dll", EntryPoint = "ExtractImgArea",
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
extern unsafe static bool ExtractImgArea(StringBuilder src, StringBuilder shp, bool t, bool b, double d);
static void Main(string[] args)
{
double s = 1.0;
StringBuilder strSrc = new StringBuilder("D:\\src.img");
StringBuilder strShp = new StringBuilder("D:\\src.shp");
bool isok = ExtractImgArea(strSrc, strShp, true, true, s);
Console.WriteLine(isok);
Console.ReadKey();
}
}
}
记录以便以后遇到类似问题,便于查询解决,也为广大爱好者提供参考。
相关文章推荐
- C#调用C++DLL,正确接收与传递中文字符方法
- C#调用C++的Dll(dll,DLL)类型之间转换笔记
- C# 调用C++DLL传递指向指针的指针参数的方法
- C#调用C++的Dll(dll,DLL)类型之间转换笔记
- C# 调用C++ dll 方法返回char* 乱码
- C#调用C++版本dll时的类型转换要注意的问题
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C#调用VC DLL接口函数参数类型转换方法介绍
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C#调用VC DLL接口函数参数类型转换的方法
- c#、C++等调用Dll方法(未完)
- 非托管C++代码调用C#编写的dll方法
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C#调用C++DLL的方法
- C#调用VC DLL接口函数参数类型转换方法介绍
- C#调用C++版本dll时的类型转换需要注意的问题小结
- C#调用C++写的dll 函数传递参数问题,请有经验的人详细描述
- c#调用C++的DLL的所有数据类型转换