擅长:python、mysql、java
<p>我真的没有回答你的问题,但我有一些信息给你,这些信息太长了,不适合发表评论,我认为这些信息可能会有用。我查看了最新版本sndobj2.6.7的源代码。在SndObj.h中,<code>PushIn</code>的定义是</p>
<pre><code> int PushIn(float *in_vector, int size){
for(int i = 0; i<size; i++){
if(m_vecpos >= m_vecsize) m_vecpos = 0;
m_output[m_vecpos++] = in_vector[i];
}
return m_vecpos;
}
</code></pre>
<p>很明显,<code>size</code>是要推送的元素数。(我假设这是数组中的元素数,256是正确的。)<code>float*</code>表示指向float的指针;<code>in_vector</code>只是一个标识符。我读到错误消息的意思是,当函数期望一个指向float的指针时,它收到了一个float。在C++程序中,可以通过传递浮点数数组的名称传递一个指向浮点的指针,尽管这不是唯一的方法。</p>
<p>很抱歉,我不知道python扩展是如何编程的。在我看来,<code>obj.PushIn(sine,256)</code>看起来是对的,但这是一个天真的观点。</p>
<P>也许有了这些信息,你可以制定另一个问题(或者找到另一个标签),这将吸引那些知道在C/C++中编写Python扩展的人的注意。</p>
<p>我希望这有帮助。</p>