开发者社区> 问答> 正文

如何使用dll在python中返回数组指针?

我正在尝试以pythonic格式[numpy或list]从以C#编写的DLL中获取数组。该DLL给出了指向内存的指针,而不是指向评估数组的指针。如何以快速方式访问内存(我编写DLL来加速代码)?

我已经使用了pythonnet模块,并且设法将内存指针作为a获取,但是我未能将内存指针提取为整数或二进制然后获取输出向量的数据。

这是python代码:

import numpy as np import clr clr.AddReference(R'...\PyDLL.dll')
from PyDLL import StringLibrary

my_instance = StringLibrary()

x = my_instance.arrayShift(np.array([1,2,3,4,5,6,7,8,9,0]).reshape(-1)) 然后是C#代码

namespace PyDLL { public class StringLibrary { public static double[] arrayShift(double[] array) { int b = array.Length; double[] newArray = new double[b];

        for(int i=0; i<b; i++)
        {
            newArray[i] = array[b-i-1];
        }

        return newArray;
    }
}

} 我希望python中的输出x是列表或np数组,而现在它是System.Double []对象。

x的预期输出为[0,9,8,7,6,5,4,3,2,1]

感谢您的任何帮助

展开
收起
被纵养的懒猫 2019-10-09 16:42:18 1108 0
1 条回答
写回答
取消 提交回答
  • image.png

    编写dll后可以这样调用。

    2019-11-04 18:14:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载