OR SDK и STL string в сочетании порождают при компиляции 118 ошибок, начиная с error C2365: ‘operator new’ : redefinition; previous definition was ‘function’
Вроде бы зачем их совмещать, ведь в OR SDK есть свой класс для строки — FBString. Однако с такой задачей сталкиваешься, когда требуется подключить сторонние библиотеки или свои разработки, зачастую это всё завязано на STL string и избавиться от этого не имеется никакой возможности.

Выходы могут быть следующими:

  • прежде всего обособить от STL те файлы, где подключены хедеры OR SDK, а именно fbsdk.h. А вот взаимодействие между кодом для OR SDK и кодом, использующим STL, можно построить на использовании extern функций. Причем данные функции должны иметь стандартные типы данных для языка С++, т.е. не вашим и не нашим (не касаясь OR SDK и не касаясь STL)
  • второй вариант вывести свой код с использованием STL в отдельную динамическую библиотеку и линковать её к плагину, но тоже при этом не используя STL, а только стандартные типы данных С++
  • ну и вариант заменить STL string на FBString или любой другой кастомный класс.
OR SDK и STL string
Метки:                

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *