Показать сообщение отдельно
Старый 25.10.2010, 04:07   #15
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Математка и C++

1) В качестве сток блитз получает\передает char*. Поэтому нет проблем с передачей, есть проблема с получением данных из DLL, т.к. память выделенная под буфер на стеке будет очищена при выходе из функции. Поэтому только в куче выделять строки для передачи в блитз. Но тогда может потечь память. Хороший вариант иметь статичную std::string (или аналог), и возвращать ее буфер. Тогда память будет менеджится непосредственно инстансом класса. Ну а блитз при получении строки делает ее копию, поэтому изменения строки в либе как бэ пофиг.
2) bool в топку. Блитз не умеет оперировать с однобайтовыми переменными, поэтому будет считывать 4 байта, соответственно будет верный младший байт и 3 байта мусора. Отсюда полезут глюки.
3) Нельзя понижать точность float'ов для ускорения математики. Блитз будет радостно кидать INF и NaN.
4) Можно передавать еще и объекты юзеровских типов, да. Не обязательно запихивать их в банки.
Как-то так короче. В любом случае в DLL стоит выносить что-то большое, типа там поиска пути и т.п. Иначе больше на вызовах функций потеряется (а блитз, сцуко, и тут не блещет).
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
ABTOMAT (28.10.2010), Arles (25.10.2010), impersonalis (25.10.2010), xRand (25.10.2010)