Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.24;
Скачать: CL | DM;

Вниз

Ошибка «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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.012 c
2-1239267520
Den1111
2009-04-09 12:58
2009.05.24
Из Access в MySQL


15-1237697229
@!!ex
2009-03-22 07:47
2009.05.24
Mesa3D драйвер для Windows


2-1239176554
Kolan
2009-04-08 11:42
2009.05.24
Ошибка «Duplicate resource»


15-1237488048
KSergey
2009-03-19 21:40
2009.05.24
Запуск программы под другой уетной записью


2-1239264269
JJ
2009-04-09 12:04
2009.05.24
Подключение к БД *.mdf