Вызов кода 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

Какое решение для строки и мультимножества обоих?

0 ответов

Другие вопросы по тегам