slackwar |
Отправлено: 05.07.2006, 10:10 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
если в приложении используются компоненты ZeosLib и требуется использовать потоки — подключая iostream и fstream, то при компиляции вылезает ошибка в ZPlainAdo.hpp (zeosdbo 6.1.5 stable)
на __property Word EOF = {read=_scw_Get_EOF};
[C++ Error] ZPlainAdo.hpp(517): E2040 Declaration terminated incorrectly
не нравится ему именно EOF !
если изменить на eof — всё замечательно компилируется...
может кто пояснит в чём тут грабли?
заранее спасибо
Отредактировано slackwar — 05/07/2006, 10:21 |
|
olegenty |
Отправлено: 05.07.2006, 10:28 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
EOF задефайнено выше, вот и всё. причём именно задефайнено. при компиляции вместо этого EOF подставляется его #DEFINE, и получаешь ты то, что видишь на экране.
|
|
slackwar |
Отправлено: 06.07.2006, 15:47 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
QUOTE (olegenty @ 05/07/2006, 10:28) | EOF задефайнено выше, вот и всё. причём именно задефайнено. при компиляции вместо этого EOF подставляется его #DEFINE, и получаешь ты то, что видишь на экране. |
дело в том, что я не писал #define EOF...
в самом ZPlainAdo.hpp такого дефайна тоже нет
способ воспроизведения ошибки :
создать новый проект, на форму поместить компонент библиотеки
ZeosLib, например TZConnection
и в коде подключить #include iostream
в результате компиляции имеем указанную выше ситуацию,
которую решил указанным выше способом :-)
где там чего задефайнено? в iostream ? |
|
olegenty |
Отправлено: 07.07.2006, 07:07 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
см. iostream и его инклуды — попадёшь на #DEFINE EOF
|
|
slackwar |
Отправлено: 07.07.2006, 08:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
ну естественно это где-то определено, но не переделывать же билдеровские библиотеки :-)
просто если чел (разработчики ZeosDbo) делали свою библиотеку — надо ж было проверять... :-)
там этих инклудов немеряно, я теперь должен перелопатить все, чтобы найти, где это там задефайнено в стандартных библиотеках, что их выкидыш потом конфликтует... блин, времени жаль потраченного
спасибо за ответ |
|
olegenty |
Отправлено: 07.07.2006, 08:51 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
да почему потраченного? всю работу с iostream вынеси в отдельный модуль так, чтобы хедеры не пересекались.
|
|
** slackwar |
Отправлено: 13.07.2006, 02:32 |
|
Не зарегистрирован
|
Ъ ЯБНИЯРБН ОЕПЕХЛЕМНБЮК — ЙНМТКХЙРНБЮРЭ ОЕПЕЯРЮКН, ОПЮБДЮ МЕ ГМЮЧ МЮ ЯЙНКЭЙН ЩРН ОПЮБХКЭМН, ГЮПЮАНРЮКН, ОНЯЛНРПЧ БШКЕГЕР ЦДЕ ХКХ МЕР. |
|
olegenty |
Отправлено: 13.07.2006, 03:14 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
ничё не понял — кодировка левоватая...
|
|
slackwar |
Отправлено: 13.07.2006, 07:58 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
ааа.... из Linux писал, там кои8р
я к тому, что исправил: поставил eof в нижнем регистре и ругаться перестало и работает, вот только не уверен, вылезет это где-нибудь или нет
у какого-то китаёзы на сайте решение — вообще закоментарить эту строку, но я считаю это неправильно, свойство нужное
в общем пишу дальше и жду, вылезет или нет :-)
пасиб за советы
п.с. в прошлой проге так и делал — выносил в отдельный юнит операции с потоками, но тут структура немного другая... |
|