Смешивание кода C ++ из разных компиляторов

Предположим, у меня есть два проекта, которые я хотел бы связать вместе:

A C++ library compiled with Visual C++ to a DLL file. A C++ executable compiled with C++ Builder that uses the classes in the library.

Я понимаю, что не существует стандартного C ++ ABI и что любые попытки напрямую связать эти два проекта C ++ потерпят неудачу. Что такое хороший, автоматизированный способ создания слоя совместимости, который позволяет мне достичь этого?

Например, предположительно, библиотека C ++ может представлять себя через интерфейс C. Тогда исполняемый файл будет иметь несколько классов C ++, которые обертывают интерфейс C, предоставляемый библиотекой C ++. С тех порis стандартный ABI для C, это будет работать.

Единственный вопрос заключается в том, как автоматически создать интерфейс C и классы-оболочки C ++ - поддержание этого вручную не будет возможным. Проект SWIG выглядит многообещающе, но, к сожалению, C ++ не является одним из выходов SWIG, перечисленных на их веб-сайте. Есть ли способ сделать то, что я хочу с SWIG? Или есть другой проект, кроме SWIG, который помог бы мне с этой задачей?

Или я иду по этому пути неправильно?

Edit:  Базовая библиотека C ++ предназначена для кроссплатформенности. Исполняемый файл, очевидно, специфичен для Windows. Я не хочу загрязнять основную библиотеку до такой степени, что становится невозможной ее компиляция на других платформах.

Ответы на вопрос(4)

Ваш ответ на вопрос