Существует опасность передачи чего-либо в DLL-библиотеку и из нее, если она основана на шаблоне. Параметры компилятора могут влиять на макет объекта, а класс шаблона не может быть ограничен одним модулем компиляции; часть из них будет передана вызывающему модулю.
В случае строки я передам const char *
(или const wchar_t *
или const TCHAR *
) и выполню преобразование в std::string
или CString
на другой стороне интерфейса в DLL .