|
0 / 0 / 0
Регистрация: 02.10.2009
Сообщений: 3
|
|
C++ Builder 6 - не работает Code Completion в конце больших модулей02.10.2009, 09:31. Показов 8623. Ответов 9
Метки нет (Все метки)
При написании программы столкнулся с глюком 6го Билдера - при превышении некоторого размера модуля (у моем случае чуть больше 80 Кб) Code Completion работает только до определенной строки, при редактировании исходов в конце модуля вылетает "Unable to invoke Code Completion due to errors in source code". Все компилируется без проблем, ошибок в коде нет.
Кто-нибудь знает, как победить эту проблему? Многие пишут, что добавляют новые функции в начало модуля. Это действительно помогает, но что делать, если нужно отредактировать старый код в конце модуля - снова перемещать его вверх? Я уже вынес все вспомогательные функции (не использующие VCL) в отдельный модуль (с созданием класса), уменьшил модуль на 7 Кб, но и при 75 Кб все равно наблюдаю проблему. Как быть с функциями, которые привязаны к форме? Можно ли разнести функции одного класса на 2 модуля? Если да, был бы очень благодарен за пример, как это сделать.
0
|
|
| 02.10.2009, 09:31 | |
|
Ответы с готовыми решениями:
9
Ошибка: Unable to invoke Code Completion due to errors in source code Code blocks, code completion, opengl Code::blocks code completion , sfml |
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 02.10.2009, 09:41 | |
|
Palych, ну создай просто Unit и перенеси туда функций побольше... у меня тоже был большой модуль, так он тоже не компилировался, делал, как тебе написал - вынес классов пару-тройку в новый юнит
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2009
Сообщений: 3
|
|
| 02.10.2009, 10:00 [ТС] | |
|
VoodooMan, я просто всегда писал на Дельфе, а сейчас пришлось Билдер осваивать, никогда так с модулями не извращался, поэтому сразу извиняюсь за ламерские вопросы. Если мона, чуть поподробней - мне нужно создать еще один cpp файл, сослаться из него на хидер модуля формы (#include "main.h"), тупо перенести туда половину функций класса формы и в main.cpp прописать #include "main2.h"?
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 02.10.2009, 10:10 | |
|
Palych, понимаете, тут топорно оттяпать не получится, надо глянуть, например, какие функции можно использовать по всему проекту и вынести их в отдельный юнит, а его хидер прописать там, откуда вы их вынесли, тут надо смотреть по коду
1
|
|
|
1 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 12
|
|
| 01.11.2009, 16:26 | |
|
Столкнулся с подобной проблемой. Не понимаю как правильно вынеси функцию в отдельный модуль. Дело в том, что функция использует глобальные переменные, и отказывается их видеть в отдельном модуле. Спасает конечно объявление этих переменных через extern в новом модуле, но многие не рекомендуют пользоваться внешними переменными. Есть ли вариант без внешних переменных?
Добавлено через 11 минут эээ поправка. Через экстерн не помогает. Code Completion всё равно не работает. Может кто нибудь объяснить поподробнее, как подключить модуль(прописывать #include <*.cpp>, или #include <*.h>?), в каком месте прописывать, куда в новом юните прописывать объявление функция (unit.cpp или unit.h), в каком месте (после какой строчки). На данный момент у меня объявление функций перенесено в Unit1.cpp, а в основном юните прописано #include <Unit1.h>. При этом проект не видит функции. Если прописать в основном юните #include <Unit1.cpp>, то всё возвращается назад (не работает Code Completion). Я совсем запутался.
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 01.11.2009, 17:28 | |
|
какие переменные и функции нужны, такие заголовки и подкючаешь с помощью include (понятное дело, что прототипы функций и описание переменных тоже должно быть в этих заголовках)
0
|
|
|
1 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 12
|
|||||||||||
| 01.11.2009, 17:38 | |||||||||||
|
Пример:
есть переменные
Это именно то место, которое мне непонятно.
0
|
|||||||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 01.11.2009, 17:42 | |
|
да что сложного-то? просто передавайте переменные в качестве параметров в функции, тогда вам надо будет только подключить хидер файла с функциями, вот и все
0
|
|
|
1 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 12
|
||
| 01.11.2009, 19:01 | ||
|
0
|
||
|
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
|
|
| 10.12.2011, 10:47 | |
|
Тема очень старая, но актуальная, так что отпишусь...
Бывает, что в большом проекте Code Completion перестаёт работать начиная с n-ой строки. Тут помогает отключение некоторых warningов: Project->Options, вкладка Compiler, кнопка Warnings. Отключаем W8004 и W8057. После этого должно работать.
1
|
|
| 10.12.2011, 10:47 | |
|
Помогаю со студенческими работами здесь
10
Как понять ошибку: "Unable to invoke Code Completion due to errors in source code" Code completion delphi 2010 Этот скрипт работает на конце странице. Как сделать чтобы работал на конце DIVа? Почему данный код работает в builder 6 а в builder 10 не работает? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|