Вызов кода C++ из C с использованием встроенных классов и шаблонов C++
Поэтому я хочу использовать string class
а также multiset template
из C++.
Мой оригинальный код интерфейсов от Python
в C
с помощью ctypes
и сейчас я пытаюсь интерфейс C
в C++
, (Если есть прямое взаимодействие между Python
& C++
Я бы приветствовал это предложение, но, просматривая пару Stack Overflow и Stack Exchange, я обнаружил, что этот метод более осуществим. @nm в комментариях предоставил решение для этого, но я все еще хотел бы знать, возможно ли интерфейс C & C++ для образовательных целей)
Итак, вот простой пример для воспроизведения того, что происходит, когда я пытаюсь слиться со строковым классом...
ex.c
#include <stdio.h>
#include <stdlib.h>
void cppstr(char *);
void str(char *x) {
cppstr(x);
}
int main() {
char *x;
x = (char *)malloc(sizeof(char)*1024);
str(x);
return 0;
}
Выше мой файл c.
ex.cpp
#include <string>
#include <cstring>
using namespace std;
extern "C" void cppstr(char *s) {
string x = "HELLO" + "WORLD";
strcpy(s, x.c_str());
}
Выше находится файл cpp.
Если я скомпилирую, используя gcc
или же g++
, он не компилируется и вместо этого выдает ошибки компоновщика, связанные со строкой.
compiler ex.c ex.cpp
Какое решение для строки и мультимножества обоих?