| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Старые исходники не компилируются |
| Автор: v00d00 26.10.2009, 18:58 | ||||||
| Потребовалось откопать для работы в Delphi (внимение. да я не дружу с С++). Пример для работы с древним апи ODMA. Пытаюсь в 2008 вижуал студии собрать исходник ODMA connection manager. Выдает следующую ошибку:
и еще парочку аналогичных. Как с этим бороться? Возможно пригодятся исходники Определение
Вызов
|
| Автор: v00d00 26.10.2009, 19:16 | ||
Что это вообще за ад?
|
| Автор: zim22 26.10.2009, 19:17 | ||
*** это ад С++ читается справа на лево: rItem является ссылкой на указатель на тип ODMDms, который является константой оператор ссылка (&) нужен для того, чтобы можно было изменить адрес указателя, переданного в функцию |
| Автор: v00d00 27.10.2009, 16:13 | ||
| разве const не противоречит &? Видимо в более ранней версии компилятора от мелкософта такой синтаксис считался нормой. В новой версии это отказывается компилироваться. Почему? Как в вызове правильно привести тип? Добавлено через 6 минут и 52 секунды а вообще это по смыслу эквивалентно
Единственное отличие в том что в коде не придется разыменовывать адресс для работы с указателем... Тааак. А почему же оно не компилируется? Вроде данные передаются правильно... |
| Автор: v00d00 27.10.2009, 16:33 | ||||
| Вопрос. Как правильно передать параметр в функцию с заголовком такого вида
Добавлено @ 16:38 Получилось только так:
но это имхо бред. в вызове кастануть тип не получается |
| Автор: bsa 27.10.2009, 23:58 |
| Скорее всего данное API является ошибкой. Так как скорее всего речь идет о константной ссылке, которая из-за использования препроцессора превратилась в ссылку на константный указатель. Короче, твое решение единственно правильное, если не менять API. |