C#中如何传入C++ const char 类型,有C++方法的声明和调用方法

oniman123 2013-10-24 03:57:20

//C++ DLL中方法声明如下:

DWORD GetKey(const char param1[40], unsigned char param2[24], DWORD* param3);


在C++中这样调用


char* param1 = "1234567890abcdef1234567890abcdef00000000";
unsigned char param2[24] = {0};
DWORD param3= 0;
GetKey(param1, param2, ¶m3);


请问下相同的方法 我在C#中需要如何调用
...全文
548 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangxiangping 2014-11-28
  • 打赏
  • 举报
回复
引用 8 楼 LargeSkyMensk 的回复:
导入命名空间: using System.Runtime.InteropServices; 声明:
 [DllImport("xxxx.dll", CallingConvention = CallingConvention.Cdecl)]
        static extern uint GetKey([MarshalAs(UnmanagedType.LPStr)] string param1, [MarshalAs(UnmanagedType.LPStr)] string param2, ref uint param3);
调用:
 string param1 = "".PadLeft(40, ' ');
            string param2 = "".PadLeft(24, ' ');
            uint param3 = 0;

            uint ret = GetKey(param1, param2, ref param3);
这个方法 OK
largeskymengsk 2013-10-25
  • 打赏
  • 举报
回复
导入命名空间: using System.Runtime.InteropServices; 声明:
 [DllImport("xxxx.dll", CallingConvention = CallingConvention.Cdecl)]
        static extern uint GetKey([MarshalAs(UnmanagedType.LPStr)] string param1, [MarshalAs(UnmanagedType.LPStr)] string param2, ref uint param3);
调用:
 string param1 = "".PadLeft(40, ' ');
            string param2 = "".PadLeft(24, ' ');
            uint param3 = 0;

            uint ret = GetKey(param1, param2, ref param3);
花开花折 2013-10-25
  • 打赏
  • 举报
回复
引用 5 楼 oniman123 的回复:
第三个参数DWORD类型的呢?
看看这里的吧,C++与C#类型跨平台转换 http://msdn.microsoft.com/zh-cn/library/ac7ay120(v=vs.90).aspx
花开花折 2013-10-25
  • 打赏
  • 举报
回复
引用 5 楼 oniman123 的回复:
第三个参数DWORD类型的呢?
int类型
oniman123 2013-10-24
  • 打赏
  • 举报
回复
第三个参数DWORD类型的呢?
xian_wwq 2013-10-24
  • 打赏
  • 举报
回复
char类型数组传入用string,传出用stringbuilder,stringbuilder必须带指定长度进行初始化。
oniman123 2013-10-24
  • 打赏
  • 举报
回复
在线等,救命啊~~
oniman123 2013-10-24
  • 打赏
  • 举报
回复
有人回答不?在线急等!
oniman123 2013-10-24
  • 打赏
  • 举报
回复
补充说明,param1为输入参数,param2,param3为输出函数!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧