DLLENTRY int CCON mfScan (int, int, int, char *, int *);
[DllImport("mflib.dll")]
public static extern int mfScan(int mode, int font, int timeout, string ret_codeline, int ret_maxchars);
我收到以下代码错误。它指向测试。我能做什么?
string test = string.Empty;
int retval = mfScan(32, 2, 5000, test, 100);
试图读取或写入受保护的内存。这通常表示其他内存已损坏
试试这个:
[DllImport("mflib.dll")]
public static extern int mfScan(int mode, int font, int timeout, StringBuilder ret_codeline, out int ret_maxchars);
除了out int ret_maxchars
之外,请注意StringBuilder
而不是字符串。然后确保调用约定是正确的。
应为out int ret_maxchars
。
您还应该考虑将CharSet
添加到DllImport
中。