Python中文
首页
教程
问答
标签
搜索
登录
注册
将struct从c++dll返回到Python
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我可以在Python结构中使用它。我做错了什么程序员请解释一下。我已经成功地返回了简单的ctypes(bool,unsigned int),但是struct对我来说太复杂了。这就是我所拥有的:</p> <p>德拉皮</p> <pre><code>#define DLLAPI extern "C" __declspec(dllexport) ... DLLAPI myStruct* DLLApiGetStruct(); </code></pre> <p>在德拉皮.cpp在</p> <p><strong>EDIT1:struct members type不是TString,而是wchar\u t*,但我得到的错误是相同的</strong></p> ^{pr2}$ <p>下面是我的Python代码:</p> <pre><code>... class TestStruct(Structure): _fields_ = [ ("id", c_wchar_p), ("content", c_wchar_p), ("message", c_wchar_p) ] class SomeClass(object): .... def test(self): myDLL = cdll.LoadLibrary('myDLL.dll') myDLL.DLLApiGetStruct.restype = TestStruct result = myDLL.DLLApiGetStruct() print "result type: ", type(result) print "-"*30 print "result: ",result print "-"*30 print result.id # line 152 </code></pre> <p>我得到的是:</p> <pre><code> result type: <class 'Foo.TestStruct'> ------------------------------ result: <Foo.TestStruct object at 0x027E1210> ------------------------------ Traceback (most recent call last): .... .... .... line 152, in test print result.id ValueError: invalid string pointer 0x00000002 </code></pre> <p>我使用的字符串是std::wstring</p> <p>myStruct中的类型应该是指针还是其他什么,而不是TString? 请帮帮我,我已经花了5天的时间来做这个。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><a href="http://docs.python.org/3.1/library/ctypes.html" rel="nofollow">http://docs.python.org/3.1/library/ctypes.html</a></p> <p><code>c_wchar_p</code>包含<code>wchar_t *</code>,而不是{<cd3>}</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
5 回答
如何在乒乓球游戏中阻止球
8 回答
如何在乘法和模中不乘空间?
4 回答
如何在乘法和除以2个不同的数字之间进行交换?
8 回答
如何在也是数据一部分的单个字符上拆分大字符串
5 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
6 回答
如何在事件wxWidgets中传递自定义数据
3 回答
如何在事件中使用lambda i=i?
3 回答
如何在事件中心只接收最近的数据
1 回答
如何在事件发生之前保持云函数运行?
5 回答
如何在事件发生后使页面重定向到同一页面
1 回答
如何在事件回调之间保持python生成器的状态
5 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
1 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
6 回答
如何在事件处理程序中访问外部对象?
9 回答
如何在事件循环中将协程打包为正常函数?
1 回答
如何在事件循环之外运行协同程序?
1 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
1 回答
如何在事件文件中只保留一份摘要?
4 回答
如何在事件模板中添加事件
9 回答