Char array или string в качестве аргумента функции DLL?
Здравствуйте. Пишу dll для работы с устройством через COM-порт.
Некоторые функции в качестве аргумента принимают строки. Библиотека может подключаться как к своим программам, так и к другим средам, например LabVIEW.
Подскажите, как лучше их лучше сделать (аргументы функции) в виде массива char или в виде string? и какие плюсы и минусы? Можно ссылками на литературу. Спасибо
Лучше char*, т.к. это во-первых универсальнее (можно подключить вашу либу к любому языку, который умеет в сишные либы), а во-2, как сказано выше, реализация std::string отличается у разных компиляторов.
char* - вы передаете указатель на сами данные.
string - вы передаете указатель на класс, реализация которого может существенно отличаться. Тот же самый оптимизатор кода может внести свои коррективы.