【发布时间】:2017-11-08 17:04:56
【问题描述】:
我有以下问题。任何帮助将不胜感激:)
我正在尝试使用 ctypes 从 Python 调用 C 函数。我已成功将共享库(Windows 上的 .dll 与 MS Visual Studio 2017)共享到 Python 3.6.3。
当我尝试调用以下函数时出现问题:
__declspec(dllexport) void printFunc()
{
printf("hello world !!");
//fflush(stdout);
}
我希望在 Python 解释器中看到输出为 'hello world !!'当我执行
mydll = cdll.LoadLibrary('path\\to\\sharedLibrary.dll')
mydll.printFunc.restype = None
mydll.printFunc()
目前我在执行上述代码时没有看到任何输出(因为 restype 为 None)。
运行脚本后 Python 解释器的预期输出:
>>> hello world !!
有什么想法吗??
【问题讨论】:
-
您可能正在使用 IDE 并且 stdout 被重定向或替换。在 Windows 控制台中运行它,您应该会看到输出。
-
@Mark Tolonen,但我想查看 python 解释器的输出。这可能吗?如果可以,我应该做些什么改变?
-
取决于您使用的是什么。您的 IDE 可能无法实现。您是否尝试在控制台中运行 Python?
-
如何运行 Python?还请显示整个 Python 脚本(什么是 cdll?)
-
@MarkTolonen,是的,我尝试在控制台中运行 Python 脚本并且它有效。谢谢你的帮助 !!但我仍然很想知道是否存在任何东西,是否有可能在 python 解释器中看到相同的输出。