调用非托管dll内存错误的问题
devie 2009-05-13 04:00:22 函数原型:int ReadCard(char *room, char *gate,char *stime, char *guestname, char *guestid, char *track1, char *track2, long *cardno, int *st)
引用方式:
[DllImport("MainDll.dll", EntryPoint = "ReadCard", CharSet = CharSet.Ansi)]
private static extern int ReadCard(StringBuilder room, StringBuilder gate, StringBuilder stime, StringBuilder icCode, StringBuilder guestid, StringBuilder t1, StringBuilder t2, ref UInt32 cardno, ref int st);
StringBuilder room = new StringBuilder(10);
StringBuilder gate = new StringBuilder(10);
StringBuilder stime = new StringBuilder(30);
StringBuilder guestname = new StringBuilder(128);
StringBuilder idcard = new StringBuilder(32);
UInt32 icCode = 0;
StringBuilder t1 = new StringBuilder(64);
StringBuilder t2 = new StringBuilder(64);
int state = -1;
int result = ReadCard(room, gate, stime, guestname, idcard, t1, t2, ref icCode, ref state);
两台电脑一台运行很顺畅,而另外一台电脑报错。
最后一行报“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”错误,