LabView开发的一个很简单功能,控制马达开关。 用Importdll的方法调用此函数,编译没问题,执行的时候报:尝试读取或写入受保护的内存....的错C#里的引用        [DllImport("PSC.dll")]
        public static extern void PCB_SCAN(Boolean yn);
...............
PCB_SCAN(true); --执行到此处报错 bool,Boolean都不行该方法的原形
void __cdecl PCB_SCAN(LVBoolean *_);

解决方案 »

  1.   

    有文档 参考文档
    该方法的原形
    void __cdecl PCB_SCAN(LVBoolean *_);LVBoolean *是否的C# 类型为 bool 或 INT32 指针。http://www.google.com.hk/#hl=zh-CN&newwindow=1&safe=strict&spell=1&q=LV+Boolean&sa=X&ei=odyLULzfEuiuiQfH64HYAw&ved=0CB4QBSgA&bav=on.2,or.r_gc.r_pw.&fp=2f5c477a980f96c7&bpcl=35466521&biw=1280&bih=577
      

  2.   

    传递 bool[] 一个元素。另外加上 CallingConvention = CallingConvention.Cdecl
      

  3.   

     CallingConvention = CallingConvention.Cdecl