ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
28 сентября
1605636 Топик полностью
ЫЫyкпy (Сегодня, 11:11, просмотров: 18) ответил Бapбoc на Докладаю. Переустановка Борланда не привела к положительному результату, только потерял последний экземпляр кейгена в борьбе с параноидальным антивирусом W10.
С переустановкой явно погорячился. Для начала просто помести в начало файла на который ругается компилятор строчку "extern variant vVarApp;" и попробуй скомпилировать. 

Немного теории.

Объявление со словом extern решает проблему когда есть переменная, объявленная в одном файле, а нужен доступ к ней из другого файла.


Каждый .с файл компилируется отдельно от других и в этот момент компилятор понятия не имеет что там понаписано в других файлах.


С помощью extern компилятору сообщают что где-то такая переменная уже есть и не нужно заводить новой, а сгенерировать доступ к уже имеющейся.

Потом линкер разберется где эта переменная находится и подставит её реальный адрес в код который к ней обращается.


Такого сорта объявлений переменных, прототипов функций, всяких констант и пр. бывает много и потому всё это собирают в один файл, обычно с расширением .h или .hpp и включают этот файл инклюдом. Эффект тот же что просто вставить текст, а возни с этим и путаницы меньше, особенно если нужно включать в несколько разных .с файлов.


Такой файл, если он есть, можно найти поиском среди .h файлов, содержащих имя "vVarApp". Файл это, очевидно, должен быть частью конкретного проекта, не библиотечным.

Жизнь есть способ борьбы белковых тел со вторым началом термодинамики.