小编nob*_*obs的帖子

无法使用ctypes将参数传递给dll(Python)

使用ctypes时遇到一些问题

我有一个带有以下界面的testdll

extern "C"
{
    // Returns a + b
    double Add(double a, double b);
    // Returns a - b
    double Subtract(double a, double b);
    // Returns a * b
    double Multiply(double a, double b);
    // Returns a / b
    double Divide(double a, double b);
}
Run Code Online (Sandbox Code Playgroud)

我也有一个.def文件,所以我有"真正的"名字

LIBRARY "MathFuncsDll"
EXPORTS

 Add
 Subtract
 Multiply
 Divide
Run Code Online (Sandbox Code Playgroud)

我可以通过ctype从dll加载和访问函数,但我无法传递参数,请参阅python输出

>>> from ctypes import *
>>> x=windll.MathFuncsDll
>>> x
<WinDLL 'MathFuncsDll', handle 560000 at 29e1710>
>>> a=c_double(2.12)
>>> b=c_double(3.4432)
>>> x.Add(a,b)

Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python dll ctypes

3
推荐指数
1
解决办法
3660
查看次数

将列表转换为"转置"列表

这可能是一个初学者的问题,但我不知道如何搜索答案(因为我不能"命名"这个问题)

我有2个列表或2个列表的元组

xxx = ["time1", "time2", "time3"]
yyy = ["value1", "value2", "value3"]
zzz=(xxx,yyy)
Run Code Online (Sandbox Code Playgroud)

现在我想为每个输入结果创建一个列表/元组

[['time1', 'value1'], ['time2', 'value2'], ['time3', 'value3']]
Run Code Online (Sandbox Code Playgroud)

我能用for循环(和zip)做到这一点但是没有"更好"的解决方案吗?这是一个类似的问题,但我无法使用那里的解决方案来解决我的问题

python

1
推荐指数
1
解决办法
1913
查看次数

标签 统计

python ×2

ctypes ×1

dll ×1