c#调用c++ Bulider生成的dll,结果出现提示:"尝试读取或写入受保护的内存, 这通常指示其它内存已损坏".有高手知道怎么回事吗?是调用参数出错,还是调用方式有问题?[DllImport("CBCDll.dll", EntryPoint = "CBCFunction")]
public static extern long CBCFunction(Struct1 StructArray, long Num1, long Num2);
//Struct1为一struct,
有点出血......

解决方案 »

  1.   

    可能这个dll中的function中存在内存越界访问
      

  2.   

    先测试一下你在BCB里面编译的动态库是不是可正常运行的。
    另外,你参数里面那个struct1 structarray是怎么回事儿?
      

  3.   

    回复jiezhi(风满袖) : 在C++ Bulider 中调用这些dll没有问题,只是传入参数比较复杂。回复tangyong12(海洋之星):struct1 structarray是一个结构声明,如:
          struct struct1
          {
              public float []data;
              public long PicNums;
          }要用的dll应该是没有问题的,现在猜测是调用方式不对。猜了2天了 :(..