问题已解决。函数名称重复。
。
此代码在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;
}
import ctypes
dll = ctypes.CDLL('Dec.dll')
dll.try_dec()
dll.dec()
OSError: exception: stack overflow
答案 0 :(得分:0)
该函数将自行调用,您最终陷入无限循环,从而导致堆栈溢出。 为防止此类错误,您应将函数签名更改为
void dec (void)