IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Заголовки Windows, Ada
сообщение
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Я поставил пакет win32ada, он создал папку include\win32ada
Если написать первой строкой test.gpr with "win32ada", то среда ругается при открытии пакета:

[2011-02-08 16:25:57] C:\Program Files\ADA\projects\TEST\test.gpr:1:06: unknown project file: "win32ada"
[2011-02-08 16:25:57] Error while loading project 'C:\Program Files\ADA\projects\TEST\test.gpr'. Loading the default project.

Ну я это убрал.
Добавил в test.gpr строчку

for Source_Dirs use ("..\..\include\win32ada\**");

Пишу в test.adb with win32.winuser (вроде все основные функции, типа окно нарисовать итд, там).
Компилирую.

gnatlink "C:\Program Files\ADA\projects\TEST\test.ali" -shared-libgcc -g -g -fprofile-generate -o "C:\Program Files\ADA\projects\TEST\test.exe"
c:/program files/ada/bin/../libexec/gcc/i686-pc-mingw32/4.3.6/ld.exe: cannot find -lwin32ada
collect2: ld returned 1 exit status
gnatlink: error when calling C:\Program Files\ADA\bin\gcc.exe
gnatmake: *** link failed.

[2011-02-08 16:28:19] process exited with status 4 (elapsed time: 06.26s)

Что делать?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
То есть он какбэ предлагает мне убрать параметр из заголовка функции.
Нет, он предлагает тебе либо убрать параметр из заголовка, либо отключить выдачу предупреждения:

   pragma Warnings (Off, "formal parameter ""lParam"" is not referenced");
pragma Warnings (Off, "formal parameter ""wParam"" is not referenced");
procedure Block( hWnd : in out Win32.Windef.HWND;
Msg : in out Win32.UINT;
wParam : in out Win32.WPARAM;
lParam : in out Win32.LPARAM;
Result : out Win32.LRESULT;
Continue : out boolean) is
pragma Warnings (On, "formal parameter ""lParam"" is not referenced");
pragma Warnings (On, "formal parameter ""wParam"" is not referenced");
begin
Result := 0;
Continue := False;
end;


Цитата
"Осторожно, к переменной после присваивания нет обращений".
А шо робыть, если эта функция зачем-то возвращает не нужное мне значение, которое надо непременно куда-то записать.
А вот тут есть 2 пути. Либо предупредить компилятор, что это особенность библиотеки (работа с функциями, которые все-таки должны вернуть результат) и на результат не надо обращать внимания, либо работать с определенными вещами не как с функциями, а как с процедурами.

По варианту №1: ты в файле wintestmain.adb внутри функции Graph используешь API-шную функцию SetPixel, из-за чего тебе нужна "лишняя" переменная С типа COLORREF, так? Можно сделать вот так:

   function Graph(Func: Parsed_Function) return boolean is

procedure SetPixelProc
(hDC : Win32.Windef.HDC;
X : Win32.INT;
Y : Win32.INT;
crColor: Win32.Windef.COLORREF);
pragma Import (StdCall, SetPixelProc, "SetPixel");

-- ... Дальше всё как было, но вместо обращения к функции SetPixel
-- будет обращение к процедуре SetPixelProc - переменная С уже не нужна.


По варианту №2:
   function Graph(Func: Parsed_Function) return boolean is

c : COLORREF; Unreferenced ©; -- Компилятор тут же перестанет паниковать


Цитата
Всё-таки, какие предупреждения надо поставить, а какие не надо?
Все-таки, я бы оставил все...

Чуть позже закончу перевод очередных обзоров с AdaCore, один из них касается именно работы с предупреждениями, ссылку запощу сюда.

Цитата
А то она принимает Key_Arr, а он задан как тип, производный от того, что идёт в параметрах шаблона
Проблема не в этом. Проблема - в том, что тебе для того, чтобы получить тип Key_Arr, надо инстанцировать другой шаблонный модуль. Это невозможно сделать при описании параметров настройки.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
TarasBer   Заголовки Windows, Ada   8.02.2011 20:28
volvo   Вот на это я бы вообще не закладывался, некоторые …   8.02.2011 21:07
TarasBer   > У тебя что, нет этого файла? Файл есть. Если…   8.02.2011 21:17
volvo   Попробуй создать новый проект, и когда он будет со…   8.02.2011 21:33
TarasBer   > Если в появившемся списке известных проектов …   8.02.2011 21:51
TarasBer   Снес ГНАТ, переставил всё. Если прямо из среды доп…   10.02.2011 18:29
volvo   Хм... Как вариант попробуй в зависимостях добавить…   10.02.2011 19:31
TarasBer   > А потом попробуй закрыть среду, и посмотреть …   10.02.2011 20:02
TarasBer   > А по проводу ошибки линкера - в проектах, исп…   11.02.2011 17:02
volvo   Странно. Значит, я не оттуда брал тот тестовый при…   11.02.2011 18:13
TarasBer   Программу я скомпилировал. Но окно белое. Новый во…   14.02.2011 15:22
volvo   function To_HBRUSH is new Ada.Unchecked_Convers…   14.02.2011 17:05
TarasBer   Вопрос: в каком модуле описаны константы wmsz_TopL…   21.02.2011 16:25
TarasBer   WM_SIZING тоже куда дели?   21.02.2011 17:11
volvo   Не описаны они вообще. Кому надо - тот открывает M…   21.02.2011 17:12
TarasBer   > Не описаны они вообще. Кому надо - тот открыв…   21.02.2011 17:24
volvo   А просто ради интереса проверь, вот такое будет ко…   21.02.2011 17:45
TarasBer   Unchecked_Access скомпилировался и заработал, спас…   21.02.2011 18:48
TarasBer   Я таки не понял, что происходит с исключениями вну…   25.02.2011 17:49
volvo   Хм. Извини, а с каких пор исключение может покидат…   25.02.2011 20:44
Гость   > Хм. Извини, а с каких пор исключение может по…   25.02.2011 21:11
volvo   Вот с этого самого и не должно. Если в Дельфи иск…   25.02.2011 22:41
volvo   Значит, смотри. Пользуемся возможностями Ады: Пак…   26.02.2011 0:43
TarasBer   В общем я тут сделал первую оконную программу на А…   5.03.2011 16:02
volvo   Ввели все типы, которые описаны в "Interfaces…   5.03.2011 20:13
TarasBer   > С точки зрения англоязычного программиста как…   5.03.2011 20:26
volvo   При линковке добавил -s: gnatlink F:\Program…   5.03.2011 22:07
-TarasBer-   > Кстати, откомпилировал твой проект со всеми W…   5.03.2011 22:26
volvo   Посмотрю, что можно еще сделать...   5.03.2011 23:21
TarasBer   В общем, включил я ВСЕ предупреждения. И выключил.…   9.03.2011 14:02
volvo   Нет, он предлагает тебе либо убрать параметр из за…   9.03.2011 18:09
TarasBer   > Нет, он предлагает тебе либо убрать параметр …   9.03.2011 18:41
volvo   Угу. Значит, включай все, кроме "Floating Poi…   9.03.2011 20:11
TarasBer   > Проблема не в этом. Проблема - в том, что теб…   10.03.2011 16:48
volvo   Ты ж выкрутился. Зачем тебе выносить эту функцию в…   10.03.2011 22:19
TarasBer   > Ты ж выкрутился. Круто, теперь у моего разбо…   11.03.2011 14:30
volvo   Так не пойдет. Максимум, что можно предложить: gen…   11.03.2011 15:56
TarasBer   1. От предупреждений я, вроде как, избавился. Прав…   17.03.2011 19:21
volvo   От этого предупреждения нельзя избавляться ни в ко…   18.03.2011 16:40
-TarasBer-   > Так что тебе надо либо включать pragma No_Str…   18.03.2011 23:32
volvo   Да. Если это нежелательно - то сделай то, что сам …   19.03.2011 3:35
Ахмед   есть кто умеет писать на Аде?!! помогите, …   28.05.2012 23:58
IUnknown   Задание нормально поставь. Какой тип элементов мас…   29.05.2012 0:37


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 13:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name