Не компилируется старый проект в GNAT2011 |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Не компилируется старый проект в GNAT2011 |
TarasBer |
22.10.2012 13:11
Сообщение
#1
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Я тут когда-то выкладывал программу, которая графики рисует и всё такое.
Мне вдруг эта программа очень понадобилась, но старые ехе не сохранились нигде. Программа собрана в GNAT2010. Однако при сборке в GNAT2011 выдаётся предупреждение, что-то типа что вызывается инициализатор объекта, которого не существует и типа будет ошибка при запуске (повторить флаги, при которых выдаётся это предупреждение, не удалось). И вправду, exe при запуске сразу закрывается. Плюс со средой что-то стало: при попытке запустить программу (даже новую) из среды выдаётся ошибка: Код [2012-10-22 14:09:29] Could not locate executable on path: Переустановка не помогает. В общем, что делать (с проектом (где в нём ошибка) и средой), программа вдруг стала позарез нужна? На всякий случай добавляю исходники, в том виде, в котором у меня они есть. Прикрепленные файлы Func_Graph_Test.rar ( 26.11 килобайт ) Кол-во скачиваний: 596 -------------------- |
IUnknown |
22.10.2012 19:55
Сообщение
#2
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Где б взять еще 2011, чтобы проверить...
2012 прекрасно собирает проект, и запускает, кстати: только изменил первую строку GPR-файла на with "win32ada.gpr";, и изменил структуру папок: (так они должны быть судя по GPR-файлу, вот по этой записи: for Source_Dirs use (".", "..\UNITS\**"); папка где лежит GPR должна быть на одном уровне с папкой UNITS, а не UNITS должен быть вложен в нее). Кроме этого, нашел на старом диске версию, скомпилированную еще GNAT 2009-ым (тот самый проект, который ты выкладывал как-то на форум), но запустить у меня ее, естественно, не получилось, поскольку DLL-ки уже обновились, и требуются другие версии. Но на всякий случай приложу результат компиляции 2009-ой версией тоже. Вот: func_graph_test_09.zip ( 287.24 килобайт ) Кол-во скачиваний: 735 func_graph_test_12.zip ( 215.92 килобайт ) Кол-во скачиваний: 724 Сообщение отредактировано: IUnknown - 22.10.2012 19:55 |
-TarasBer- |
22.10.2012 20:50
Сообщение
#3
|
Гость |
Во, за екзешник спасибо, очень нужен!
Правда ерунда с кодировкой в заголовке окна смущает, но это ладно. Новая структура папок мне не нравится, ибо по замыслу UNITS она как бы одна на все проекты. |
IUnknown |
22.10.2012 22:34
Сообщение
#4
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
|
TarasBer |
23.10.2012 9:24
Сообщение
#5
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
А заголовки окон в английской версии быть русскими не могут?
Дело в том, что я пытался и сами окна создавать через CreateWindowW, но в заголовке была какая-то ерунда, хотя я текст в них отправлял так же, как и в кнопки, поля ввода итд, поэтому я для окон сделал исключение. -------------------- |
IUnknown |
23.10.2012 10:34
Сообщение
#6
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Могут. Но для этого надо приложить дополнительные усилия. Мало того, что нужно создавать окна через CreateWindowW, так еще и текст, который будет отправляться в заголовок, должен сохраняться не редактором GPS, а сторонним. Дело в том, что для корректной работы с заголовками окон (странно, но это так. С остальным кириллическим текстом это не так критично, хотя тоже желательно) нужно текст хранить в UTF8 with BOM, чего редактор GPS не делает, он хранит без BOM.
Поэтому обычно я делаю проще: все (даже не только кириллические) строковые константы выношу в отдельный модуль, который редактирую другим редактором. Можно редактировать и GPS-овским, но перед сборкой обязательно пересохранить сторонним в нужном формате. with Interfaces.C;, а потом создается окно: function To_LPCWSTR is |
TarasBer |
23.10.2012 12:02
Сообщение
#7
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
А дописать BOM к строке принудительно прямо в GPS можно?
Типа UTF8_BOM : constant char := ... Main_Class : constant Interfaces.C.wchar_array := UTF8_BOM & "TestAppClass" & Interfaces.C.wide_nul; -------------------- |
IUnknown |
23.10.2012 13:57
Сообщение
#8
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Нет, нельзя. BOM относится не к отдельной цепочке символов, а ко всему файлу. И стоять этот самый признак должен не в начале строки, а именно в начале исходника, который эту строку содержит.
|
Текстовая версия | 19.11.2024 6:25 |