Ctypes:OSError:异常:堆栈溢出

时间:2019-08-15 19:03:33

标签: python c++

问题已解决。函数名称重复。

C ++

此代码在exe中有效,但在使用python时在dll中不可用。

当程序运行到dec(&buffer2, &length, &buffer);时,Python抛出此错误。

python和dll均为x64。

#include "Decompress.h"
#pragma comment (lib,"Decompress.lib")

#define DLLEXPORT extern "C" __declspec(dllexport)

DLLEXPORT void try_dec() 
{
    int buffer[20];
    int buffer2[20];
    int length = 20;

    dec(&buffer2, &length, &buffer);

    return;
}

Python

import ctypes

dll = ctypes.CDLL('Dec.dll')
dll.try_dec()

错误

    dll.dec()
OSError: exception: stack overflow

1 个答案:

答案 0 :(得分:0)

该函数将自行调用,您最终陷入无限循环,从而导致堆栈溢出。 为防止此类错误,您应将函数签名更改为

void dec (void)