用DllImport调用动态库的问题

yf1025 2006-07-21 01:07:13
动态库:
makebar.dll
(C++)
void __stdcal Make(unsigned char* ucData, long nDataLen, char* szBmpFileName, long nClumn, long nErr, long nHLRatio);


参数说明:ucData 条码数据
nDataLen 条码数据长度(注:是字节数) 长度<=1K;
szBmpFileName 生成条码的图片文件名,BMP格式
nClomn 条码列数,取值范围1-30,根据具体数据字符串长度;
nErr 纠错等级,取值范围0-7;
nHLRatio 条码单位长度和宽度比例,取值范围1-5;

我调用的方法:
[DllImport("MakeBar.dll")]
public static extern void Make(ref byte ucDate, long nLen, string szFileName, long nClumn, long nErr, long nHlration);

byte[] a;
a = System.Text.Encoding.Unicode.GetBytes(textBox1.Text.Trim());
Make(ref a[0], a.Length, @"D:\abc.bmp", 3, 3, 3);
运行到make这个方法时就会死在那不向下运行,不知道什么原因,有知道的吗?
...全文
493 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yf1025 2006-07-21
  • 打赏
  • 举报
回复
to kssys() :
这样改后,运行到make还是不向下运行
kssys 2006-07-21
  • 打赏
  • 举报
回复
Try this:
[DllImport("MakeBar.dll")]
public static extern void Make(byte[] ucDate, long nLen, string szFileName, long nClumn, long nErr, long nHlration);

byte[] a;
a = System.Text.Encoding.Unicode.GetBytes(textBox1.Text.Trim());
Make(a, a.Length, @"D:\abc.bmp", 3, 3, 3);
fengfangfang 2006-07-21
  • 打赏
  • 举报
回复
ref a[0] -> ref a ??

111,125

社区成员

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

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

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