日期:2014-05-17  浏览次数:20994 次

C#调用dll接口,内存不足怎么办?
写了一个控制台,在后台刷新实时数据。
test.GetMutiReal(name, num, ref value[0], status, tm_tag);

class test
    {
        [DllImport("12.dll")]/*server.map("~/bin/12.dll")*/
        public static extern Int32 GetMutiReal(string[] name, int num, ref double value, Int16[] status, Int64[] tm_tag);
    }

一次读取数据超过90条时,也就是变量num大于90,就报错,内存不足。用的是一个虚拟服务器,3G内存,后台运行程序不多,还比较流畅。接口是我copy过来的,源文件没有,不知道是不是接口本身有限制,据说一次读三四百条没问题。求大神给点思路
C# 内存 dll接口 服务器

------解决方案--------------------
貌似是你类型和 C++ 里的类型不对应材造成那个问题。
------解决方案--------------------
把第一个参数的string[] 换成StringBuilder试试 咋不行就把 C++那个 函数的元参数贴出来看看。