Я пытаюсь вызвать C ++ в python с использованием ctypes.cdll.LoadLibrary и преуспеть в вызове функции и получить результаты.
компилируется так:
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 может решить эту проблему, как показано в моем коде.
Однако, почему это происходит? Я даже не могу найти в нем других.
Это означает, что я могу использовать только синтаксис C, а не C ++ в dll?