【问题标题】:Unable to get ctypes C types parsed correctly无法正确解析 ctypes C 类型
【发布时间】:2021-02-21 22:50:15
【问题描述】:

我需要在 ctypes 中运行它但是无法让它工作。

int function_open(const char *port_name, int baud_rate);

我试过了:

from ctypes import *
import ctypes
import time

load=cdll.LoadLibrary(r"[absolute path redacted]")
original_string="/dev/ttyS4"
b = ctypes.c_char_p(str.encode(original_string))
load.function_open(b, ctypes.c_int(9600))

它返回 C 中定义的异常,但我认为传递了错误的参数类型或方法不正确。请问有人可以看看吗?提前致谢。我正在加载一个 .so 共享库。我将向通过 paypal / venmo 工作的解决方案发送 5 美元。

【问题讨论】:

    标签: python c shared-libraries ctypes


    【解决方案1】:

    我用main.c测试过:

    int function_open(const char *port_name, int baud_rate) {
        printf("port_name = %s and baud_rate = %d\n", port_name, baud_rate);
        return 1;
    }
    

    我编译如下。

    gcc -c main.c -o main.o
    gcc main.o -shared -o main.so
    

    您的 Python 代码 sn-p 运行良好。所以问题肯定是除了参数类型之外的其他问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      相关资源
      最近更新 更多