Показать сообщение отдельно
Старый 25.09.2009, 14:50
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Строка - это массив чаров. Если вернуть из длл строку, то да, получится, что вы вернули массив. Если из цинка передали строку - получится, что из цинка передали массив. В этом смысле массив можно передать и в длл и обратно). Только следует иметь в виду, что строка "0123" - это не есть массив [0x00,0x01,0x02], это массив [0x30,0x31,0x32,0x33].
Массив чисел [0,1,2,3] передать как есть не получится, просто потому, что нет символов, чей код 0x00, 0x01 и т.п., так же как и для чисел типа 56'000'000 нет сопоставимых символов в кодовых таблицах.
Можно передать строковое представление массива "0,1,2,3", а в длл, зная, что это все-таки сериализованный числовой массив, распарсить строку именно в числовой массив [0x00,0x01,0x02].
ЗЫ.
Цитата:
...что строка .. это сложный тип данных и с ним могут быть косяки...
В смысле с ним сложно работать? Я бы так не сказал. В С++ есть специальные библиотечные классы для удобной и безопасной работы со строками, скажем, std::string. Имея опыт, можно работать и напрямую.
ЗЫЫ. Если не секрет, поделитесь, над чем трудитесь. Ситуация может прояснится.
ЗЫЫ. Понятия "конструктор функции" нет. Правильно "передать массив в функцию".


Последний раз редактировалось alexcon314; 25.09.2009 в 15:12.