c# 调用C++生成的DLL文件

MCOP_Jacob 2010-09-08 02:51:11


int MakeWorkCard(char *SystemCode);长度4个字节

[DllImport("card.dll", EntryPoint = "MakeWorkCard", CharSet = CharSet.Ansi, SetLastError = true)]

用 public static extern int MakeWorkCard(ref byte SystemCode);
还是用
public static extern int MakeWorkCard(byte [] SystemCode);


还有在调用时

byte[] _myString = new byte[8];

然后又怎么写下去呢?

本人想学多一点,在线等
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WM_JAWIN 2010-09-08
  • 打赏
  • 举报
回复
用unsafe代码
public static extern int MakeWorkCard( byte* SystemCode);
gongsun 2010-09-08
  • 打赏
  • 举报
回复
public static extern int MakeWorkCard(byte [] SystemCode);
MCOP_Jacob 2010-09-08
  • 打赏
  • 举报
回复
如果写成 public static extern int MakeWorkCard(char* SystemCode);

int i = Card.MakeWorkCard((char*)Marshal.StringToHGlobalAnsi("BD49CA0C").ToPointer());

这样是不是会出现乱码?
MCOP_Jacob 2010-09-08
  • 打赏
  • 举报
回复
当然不行 一个是指针类型,一个是STRING
云瑀 2010-09-08
  • 打赏
  • 举报
回复
[DllImport("card.dll", EntryPoint = "MakeWorkCard", CharSet = CharSet.Ansi, SetLastError = true)]
public static extern int MakeWorkCard(string SystemCode);
string _myString = "";
MakeWorkCard(_myString);

这样您觉得?

110,571

社区成员

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

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

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