Python中文
首页
教程
问答
标签
搜索
登录
注册
如何使用没有输入参数的ctypes调用函数?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<P>我试图用CyType调用Python中的C++函数AddithTooUu。函数AddithTooUu在C++头文件中定义为:</P> <pre><code>extern ExternalInputs_add_two add_two_U; </code></pre> <p>结构ExternalInputs_add_two在头文件中定义为:</p> ^{pr2}$ <p>我在下面的Python代码中调用的add_two_initialize函数在头文件中定义为:</p> <pre><code>extern void add_two_initialize(boolean_T firstTime); </code></pre> <p>我的Python代码:</p> <pre><code>import sys from ctypes import * class ModelInput(Structure): _fields_ = [("Input", c_int), ("Input1", c_int)] #define the functions initiateModel = cdll.add_two_win32.add_two_initialize U_Model = cdll.add_two_win32.add_two_U # define the pointers to the functions initiateModel.restype = c_void_p U_Model.restype = c_void_p #initialize the model with value of 1 print "\n\nInitialize" errMsg = initiateModel(1) print "initateModel reports:", errMsg #Initialize the structure and get the pointer. test_input = ModelInput(1,2) input_ptr = pointer(test_input) </code></pre> <p>我试图在python代码中通过变量U_\U模型调用函数add_2;two_。注意,在头文件中,这个函数没有任何输入参数,而是使用头文件中的结构来获取输入数据。在</p> <p>我有以下两个问题:</p> <ol> <li><p>我如何在Python代码中设置ExternalInputs_add_two结构来将数据传递给<code>add_two_U</code>函数?</p></li> <li><p>我如何在没有参数的情况下调用dll函数<code>add_two_U</code>,而我在Python代码中通过<code>U_Model</code>引用它?如果我使用Python语句调用函数:</p> <pre><code>result = U_Model() </code></pre> <p>我得到以下错误:</p> <pre><code>WindowsError: exception: access violation reading 0xFFFFFFFF </code></pre></li> </ol> <p>我在网上搜索答案,但找不到初始化头文件中的结构并调用无参数函数的示例。在</p> <p>请注意,在我的Python代码中,我可以通过initiateModel调用函数add_two_initialize而不会出错,因为这个函数有输入参数。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>add_two_U</code>不是函数,它是导出的值。您需要使用<code>in_dll</code>。在</p> <p>见<a href="http://docs.python.org/library/ctypes.html#accessing-values-exported-from-dlls" rel="nofollow">Accessing values exported from dlls</a>。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
6 回答
文本小部件:在没有输入时更新并在循环后保持空闲
5 回答
文本小部件tkin
6 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
1 回答
文本小部件tkinter复制图像选项
3 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
7 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
2 回答
文本小部件不显示lis中的内容
4 回答
文本小部件不显示Unicode字符
1 回答
文本小部件中写入的行间距
6 回答
文本小部件中的文本作为变量
9 回答
文本小部件中的滚动条仅显示在底部
5 回答
文本小部件中的选项卡键空间计数
9 回答
文本小部件作为Lis
3 回答
文本小部件在主框架中扩展列宽
1 回答
文本小部件未使用删除功能清除
6 回答
文本小部件滚动动画(Tkinter、Python)
7 回答
文本居中。格式正确吗?
3 回答
文本差分算法
7 回答
文本已知时音频文件中的单词索引
7 回答