C# 调用 C dll char*

原创 2013年12月05日 15:41:17

C# 调用C 写的dll 里面有char * 之前一直是用string,可是这个函数怎么也不好用了,别人告诉我用intptr,好用了,虽然我也不知道为什么。给大家看看吧,也许也能用的着。

CP5200API int  CALLING_CONVCP5200_RS232_InitEx(const char *fName, int nBaudrate, DWORDdwTimeout);

声明为

 [DllImport("CP5200.dll", CharSet =CharSet.Auto)]
       public static extern int CP5200_RS232_InitEx(IntPtr fName, intnBaudrate, int dwTimeout);
 

调用:

int nRet = 0;
 

          string strPort;
               strPort = "COM" + m_nPort.ToString();
               nRet =CP5200.CP5200_RS232_InitEx(Marshal.StringToHGlobalAnsi(strPort),m_nBaudrate, m_nTimeout);

char* 转换成String 用:Marshal.PtrToStringAnsi

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c#调用c++写成的dll文件,返回char*,返回数组,用ref接收,byte[] (zz)

c#调用c++写成的dll文件,返回char*,返回数组,用ref接收,byte[] ,最近做个项目,又想不起来了。这下Mark一下 / Inclusion guard #ifndef _...

C#调用C++的Dll(参数和返回值為char* TCHAR*)

想要在C#和C++之间进行字符串传递会涉及到两件事情: 1.C#的string和C++的字符串首指针要怎么对应.   2.字符串分为ANSI和UNICODE. C++ 头文件接口: //Fil...

c#调用c语言dll,形参有char*

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...

C#调用C/C++ 动态链接库DLL(三)

2。 在C#中创建DLL接口的声明 C#没有全局函数,必须使用静态函数实现全局函数。 1)  DllImport类似C++中的__declspec(dllimport),第一个参数为必选参数,为D...
  • Nocky
  • Nocky
  • 2012年06月24日 15:24
  • 16062

c#调用C/C++生成的dll

1、打开vs2010,新建一个项目 2、在弹出来的界面中按下图输入: 点击确定。 3、把CDLL.h文件的内容清除,并输入下面的内容: 4、在CDLL.cpp文件里输入下面的内容:...

VS2010产生C的dll方法和C#调用方式

第一部分:产生C的dll   1、 1,新建win32工程,选中DLL项目,如下图: 2,分别添加头文件和cpp文件 ? 1 2 3 ...

C#调用C的Dll(类型对照)

转: C#调用C的Dll(类型对照) //C++中的DLL函数原型为   //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1...

C#调用C/C++动态链接库(.dll)详解

第一篇编译C的动态连接库 在实际工作中,我们经常会将C语言中的.lib和.h文件(静态库)编译成动态连接库.dll文件(这里只提供这两种文件,没有完整的工程),以提供给其他语言平台调用。 ...

C#调用C/C++的dll须知

1. C#类型与C/C++类型的对应关系 基本数据类型(C# C/C++) System.Int32,int int, long System.Int64,int64 long ...

C#调用C、C++dll

[DllImport("MotorControlDll.dll",EntryPoint="Add",ExactSpelling=false,CallingConvention=CallingConve...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 调用 C dll char*
举报原因:
原因补充:

(最多只允许输入30个字)