c# 调用 c dll

LOVE_GG 2010-12-05 03:37:49
我在c#中调用 c 写的dll动态链接库,弄了好久,总是报“尝试读入或写入受保护的内存”这样的错误,估计是参数类型对应出错了。大家帮忙看下,下面这个动态库中的c语言函数转换成c#的函数,参数该是怎么样的呢?谢谢
long WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char * Baud,long *FrmHandle);
...全文
117 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LOVE_GG 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xper2002 的回复:]

C# code

[DllImport("UHFReader.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int OpenComPort(int port, ref byte comAddr, ref byte Band, ref int FrmHandle);



这个是UHF R……
[/Quote]
不好意思,之前现在才来结贴,你是对的。谢谢大家的帮助
xper2002 2011-03-07
  • 打赏
  • 举报
回复

[DllImport("UHFReader.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int OpenComPort(int port, ref byte comAddr, ref byte Band, ref int FrmHandle);


这个是UHF RFID Reader DLL,我做过类似的,
klint_khl1 2011-03-04
  • 打赏
  • 举报
回复
[DllImport("UHFReader.dll")]
public static extern int OpenComPort(StringBuilder Port, byte Comadr, byte Band, out long FrmHandle);

改成如下试试:

[DllImport("UHFReader.dll")]
public static extern int OpenComPort(char[] Port, byte Comadr, byte Band, out Int32 FrmHandle);

explife 2011-03-02
  • 打赏
  • 举报
回复
Int32 Port, StringBuilder Comadr,StringBuilder Band, out long FrmHandle
参数类型和C++的类型不匹配
windhuan 2011-01-10
  • 打赏
  • 举报
回复
[DllImport("UHFReader.dll")]
public static extern Int32 OpenComPort(Int32 Port, StringBuilder Comadr,StringBuilder Band, out long FrmHandle)
lijiangshui 2011-01-10
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/ac7ay120.aspx

LONG ---- System.Int32
char* ---- System.String or System.Text.StringBuilder
None465465535 2011-01-07
  • 打赏
  • 举报
回复
要启用不安全代码
吕津 2010-12-18
  • 打赏
  • 举报
回复
wuyq11 2010-12-05
  • 打赏
  • 举报
回复
char* string
传出的char* StringBuilder
short short
char byte
DWORD Int32 or UInt32
char[n] fixed byte[n]
http://topic.csdn.net/u/20090225/15/a6bc50ad-9721-4749-b189-dc4a4bc045a1.html
LOVE_GG 2010-12-05
  • 打赏
  • 举报
回复
我用下面这样的方式调用,总是“尝试读入或写入受保护的内存”
[DllImport("UHFReader.dll")]
public static extern int OpenComPort(StringBuilder Port, byte Comadr, byte Band, out long FrmHandle);

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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