- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在从 python 调用共享 c 库时遇到问题。库加载正常,公开的 3 个函数之一是可调用的,并且按预期工作;但是,当向库中添加另一个函数时,我发现其他两个不起作用。发生的事情是 python 卡在实际的函数调用上,只是自旋而什么都不做。 python 端和 c 端都有详细的日志记录,我可以看出库中的函数甚至没有启动,因为没有写入任何调试文件。
下面是相关代码的一小段:
这是失败的 C 代码示例函数:
int genTest(char* filePath)
{
infoPrint(filePath, 2);
return EXIT_SUCCESS;
}
这是我调用它的 python:
import ctypes as C
lg.create_log_entry('loading dll... from ' + str(lib_path) + str(lib_name))
myclib = C.CDLL(lib_path + lib_name)
lg.create_log_entry('loaded')
genTest = myclib.genTest
genTest.argtypes = [C.c_char_p]
genTest.restype = C.c_int
lg.create_log_entry('test start')
res = genTest(C.c_char_p(str(source_as_image)))
certirxlogging.create_log_entry('test successful')
此代码开始编写“测试开始”并挂起。就像我说的,这在 python 代码其他地方的库中的另一个函数上工作正常,python 没有抛出任何错误,所以,我无法调试任何东西。有什么想法吗?
最佳答案
所以,我弄清楚了它失败的原因。对我的 infoPrint 函数的调用中出现了段错误。
导致我的程序挂起的原因是我使用 python 的多处理库在单独的进程中运行此函数并通过管道与其通信。父进程正在超时轮询管道以获得由于突然崩溃而从未出现的返回值。
感谢您帮助克服这个小问题,现在我可以(希望)找出 C 代码出了什么问题。
关于python ctypes 挂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347433/
我在从 python 调用共享 c 库时遇到问题。库加载正常,公开的 3 个函数之一是可调用的,并且按预期工作;但是,当向库中添加另一个函数时,我发现其他两个不起作用。发生的事情是 python 卡在
我在使用 ImageIcon().GetImage() 时遇到问题 奇怪的是,它有时可以工作并向我显示带有 map 的窗口,而有时却不能。它也可以在其他计算机上完美运行,但不能在我的计算机上运行! 我
我们有时会遇到一个问题,即我们在 IIS 中有许多具有以下状态的请求:RequestAcquireState。 我们正在使用 SqlSessionStateStore 来管理 session 。当我们
我有一个 MobileSubstrate 插件,可以挂接跳板(不在实际的 objective-c 代码中,而是在 plist 中)。它包含一个 UIWebView,它加载一个 NSURLRequest
我正在尝试使用 Django 1.7,并按照说明进行操作 here .不幸的是,该过程似乎因以下输出而挂起: [Watt] ~/Projects/proj/proj master > python p
我正在使用 HDP 2.3.0.0-2557,我正在尝试运行如下所示的配置单元查询: beeline> !connect jdbc:hive2://localhost:10000 Connecting
我正在尝试使用 mxnet 设置 AWS Greengrass,以便在 Raspberry Pi 上进行机器学习。 当从 https://docs.aws.amazon.com/greengrass/
我是一名优秀的程序员,十分优秀!