<P>使用Python的cType模块将Python发送到C++的字符串需要解析为CXCHAREP P(char *)。我发现我需要使用python<strong>pure</strong>字符串,而不是python<strong>unicode</strong>字符串。如果我使用unicode字符串,变量就会被覆盖而不是被正确地发送。下面是一个例子:</p>
<P> C++ +<
<pre><code>void test_function(char * a, char * b, char * c) {
printf("Result: %s %s %s", a, b, c);
}
</code></pre>
<p>Python</p>
^{pr2}$
<p>运行上述Python代码将在stdout中提供以下内容:</p>
<pre><code>Result: z z z
Result: x y z
</code></pre>
<p>这是为什么,这是ctypes的怪癖吗?如果我可以得到unicode字符串,有什么好方法可以避免这种怪癖呢?在</p>
<p>谢谢!在</p>