Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
ВнизОшибка «Duplicate resource» Найти похожие ветки
← →
Kolan © (2009-04-08 11:42) [0]Здравствуйте!
Не могу понять в чем дело. При компиляции компилятор (D2007) выдает ошибку, а точнее две:
[DCC Error] E2161 Warning: Duplicate resource: Type 14 (ICON GROUP), ID MAINICON; File D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource kept; file D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource discarded.
[DCC Error] E2161 Warning: Duplicate resource: Type 16 (VERSIONINFO), ID 1; File D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource kept; file D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource discarded.
Странность в том, что, во-первых, как обычно, раньше все работало, во-вторых, с ресурсами я никаких манипуляций в коде не делаю.
Да и ошибка какая-то дурацкая. С одной стороны файлKFreGraf.res
kept, а с другой (он же) — discarded. Как так?
Более того, если совсем удалитьKFreGraf.res
и сделать билд, то все равно ошибка возникает.
Если в менюProject → Options → Version Info
убрать галочкуInclude version information in project
, то вторая ошибка (VERSIONINFO
) исчезает.
Код dpr такой:
program KFreGraf;
uses
Forms,
...
{$R *.res}
begin
Application.Initialize;
Application.Title := "KFreGraf";
Application.HelpFile := "E:\MyWork\Delphi\KFreGrafProject\SoftWare\Source\Binary\Help\KFreGrafHelp.hlp";
Application.CreateForm(TMainForm, MainForm);
...
Application.CreateForm(TModelBuilderForm, ModelBuilderForm);
Application.Run;
end.
Еще (вдруг это важно), раньше у меня в этом проекте было куча БПЛ-пакетов. И в один прекрасный момент при открытии (именно при открытии в среде) всей этой группы с проектов стало появляться сообщение про Duplicate resource, но в виде простого модального окна. Окно с сообщением об ошибки закрывалось, и проект компилировался нормально.
Сейчас я убрал все пакеты и, возможно, это та самая старая проблема, которая была с пакетами.
Итого
1. Что за дурацкая формулировка ошибки, что это значит?
2. Почему возникает ошибка?
3. Как избавиться от ошибки?
← →
Игорь Шевченко © (2009-04-08 12:03) [1]
> 3. Как избавиться от ошибки?
убрать дублирующиеся ресурсы
← →
Kolan © (2009-04-08 12:08) [2]Где их искать, Игорь? Да и откуда им взяться...
А может...
Прошел поиском по папке с исходниками, искал*.res
. Нашлось много файлов — это остатки от пакетов-проектов. Удалил их, сделал билд. Ошибка осталась.
← →
Медвежонок Пятачок © (2009-04-08 12:18) [3]переименовал модуль формы.
появилось две копии.
в юзесах обе.
в обоих ссылка на один и тот же рез.
включай голову-то
← →
Игорь Шевченко © (2009-04-08 12:20) [4]
> Где их искать, Игорь?
искать в файлах *.pas строки {$R имя_ресурса
← →
brother © (2009-04-08 12:24) [5]> MAINICON
ищи pas, где вероятнее всего может быть res c MAINICON
зы [4] самое оно ;)
← →
Anatoly Podgoretsky © (2009-04-08 12:28) [6]> Игорь Шевченко (08.04.2009 12:03:01) [1]
Убирать надо файл KFreGraf.r - ну или как минимум эти два ресурса из него.
← →
Anatoly Podgoretsky © (2009-04-08 12:28) [7]> Kolan (08.04.2009 12:08:02) [2]
Из KFreGraf.r они взялись.
← →
Игорь Шевченко © (2009-04-08 12:56) [8]Anatoly Podgoretsky © (08.04.09 12:28) [6]
Мне ничего не надо убирать, я уже все убрал :)
← →
Kolan © (2009-04-08 13:02) [9]
> искать в файлах *.pas строки {$R имя_ресурса
Сделал поиск во всех файлах проекта{$R
. И оказалось, что в dpr, в юзисах написано:
KROMBuilderHistoryManager in "..\KFreGrafSimpleReportColleague\KROMBuilderHistoryManager.pas",
KFreGrafStartUpController in "..\KFreGrafStartUpColleague\KFreGrafStartUpController.pas",
KFreGrafStartUpColleagueUnit in "..\KFreGrafStartUpColleague\KFreGrafStartUpColleagueUnit.pas"{$R *.res}
,
KFreGrafSystemControllers in "..\KFreGrafSystemControllerColleague\KFreGrafSystemControllers.pas",
KFreGrafDeviceAddForm in "..\KFreGrafSystemControllerColleague\KFreGrafDeviceAddForm.pas" {DeviceAddForm},
...
KFreGrafModelBuilderColleagueUnit in "..\KFreGrafModelBuilderColleague\KFreGrafModelBuilderColleagueUnit.pas",
KFreGrafROMBurnColleagueUnit in "..\KFreGrafROMBurnColleague\KFreGrafROMBurnColleagueUnit.pas";
{$R *.res}
Как оно туда затисалось — не знаю, но думаю, что это Делфи сам...
Благодарю — скомпилилось.
Анатолий, а KFreGraf.r и вообще *.r-файлов в коде проекта нет.
← →
Anatoly Podgoretsky © (2009-04-08 13:07) [10]> brother (08.04.2009 12:24:05) [5]
Вот это самое оно не стоит трогать, да и бесполезно, а удалять надо из указаного файла.
Тоже мне надумал, давать ресурсами зарезервированые имена.
← →
Anatoly Podgoretsky © (2009-04-08 13:09) [11]> Kolan (08.04.2009 13:02:09) [9]
не .r а .rc
И строку в .dpr не трожь.
← →
Anatoly Podgoretsky © (2009-04-08 13:10) [12]> Игорь Шевченко (08.04.2009 12:56:08) [8]
Я даже думаю, что ты не добавлял.
← →
brother © (2009-04-08 13:19) [13][10] я о другом, ну да ладно)
← →
Kolan © (2009-04-08 13:37) [14]*.rc тоже нет, а
KFreGrafStartUpColleagueUnit in "..\KFreGrafStartUpColleague\KFreGrafStartUpColleagueUnit.pas" {$R *.res},
я удалил и помогло.
← →
Anatoly Podgoretsky © (2009-04-08 13:46) [15]Конечно помогло, ведь ты удалил дубли ресурсов, но может кроме дублей ты удалил и что ни будь нужное.
← →
Kolan © (2009-04-08 13:55) [16]Я думаю, что это Делфи неверно добавил модули в юзис дпр"а новый модуль. Видимо он {$R *.res} забыл сдвинуть вниз, дописав новый модуль после запятой и добавив новый {$R *.res}.
← →
Игорь Шевченко © (2009-04-08 14:31) [17]
> Я думаю, что это Делфи неверно добавил модули в юзис дпр"а
> новый модуль
Never attribute to malice which can be adequately explained by stupidity
← →
Anatoly Podgoretsky © (2009-04-08 14:32) [18]Kolan © (08.04.09 13:55) [16]
Правильно добавляет, неправильно добавляешь ты - нафига предопределеные ресурсы добавляешь?
← →
Kolan © (2009-04-08 15:16) [19]А если я скажу, что руками dpr не трогал, то можно будет attribute?
← →
Anatoly Podgoretsky © (2009-04-08 15:28) [20]> Kolan (08.04.2009 15:16:19) [19]
Ты все никак не можешь понять, что эти ресурсы делает компилятор и не надо их дублировать, плохо кончится, точь в точь как у тебя.
← →
Kolan © (2009-04-08 15:37) [21]Так я их и не дублировал. С чего вы это взяли?
Эта запись...t.pas" {$R *.res},
там уже была. Руками её туда никто не вставлял.
← →
Игорь Шевченко © (2009-04-08 15:43) [22]
>
> Эта запись ...t.pas" {$R *.res}, там уже была. Руками её
> туда никто не вставлял.
напиши комплейн в Codegear
← →
Kolan © (2009-04-08 16:00) [23]Ну вот, а то все стьюпидити, да стьюпидити :)
← →
Игорь Шевченко © (2009-04-08 17:40) [24]
> Ну вот, а то все стьюпидити, да стьюпидити :)
а ты не только на свой счет принимай, мало ли у кого stupidity, пиши в Codegear, заодно узнаешь
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.005 c