C# 调用C++ DLL
LedZK.dll说明
函数名称:int WINAPI SendString(
unsigned char Addr;
int pWidth, pHeight, pLeft, pTop, EntMode, EntSpeed, Delay ,ClrFlag;
char *Str);
入口参数: Addr 屏地址,值范围1~32。通用地址0x00。
pWidth,pHeight显示区域宽度和高度(点像素),值为8的整数倍。
pLeft,pTop 显示区域的左边距和顶边距(点像素),值为8的整数倍。
EntMode 进入方式,值范围0~11。
EntSpeed 进入速度,值范围0~9。
Delay 停留时间,值范围0~99。
Str 要显示的字符串
函数返回: 1成功,0:失败
功能描述: 向LED发送字符串。.
c#中声明
[DllImport("LedZK.dll")]
public static extern int SendString(byte addr, StringBuilder str, int pWidth, int pHeight, int pLeft, int pTop, int Entmode, int EntSpeed, int Delay, int ClrFlag);
private void button1_Click(object sender, EventArgs e)
{
byte addr = 0;
int pwidth = 128;
int pheight = 16;
int pleft = 0;
int ptop = 0;
int entmode = 0;
int entspeed = 4;
int delay = 0;
int clrflag = 1;
StringBuilder sb = new StringBuilder(256);
sb.Append("14:06");
SendString(addr, sb, pwidth, pheight, pleft, ptop, entmode, entspeed, delay, clrflag);
}
错误:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
估计是参数问题,试了很多都不行,请高手指点