我正在尝试使用ctypes.cdll.LoadLibrary在python中调用C ++,并成功调用函数并获得结果。
这样编译:
g++ -std=c++11 -shared func.cpp
而python是:
lib = ctypes.cdll.LoadLibrary("./a.exe")
但是添加更多代码时,此调用由于winError 1114而失败。 我对它进行了调试,发现这是由于使用语法引起的:new int []
#include <malloc.h>
void fun(){
int* p = (int *)malloc(sizeof(int)*7);
// int* p = new int[7];
}
一个常识是,使用malloc可以解决此问题,如我的代码所示。
但是,为什么会这样呢?我什至找不到其他困扰的人。
这是否意味着我只能在dll中使用C语法而不是C ++?