1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Новые вопросы - какая функция определяет наличие или отсутствие утечек памяти? Я скачал ВинАДУ, поставил, как подключить пакет, содержащий заголовки виндовых библиотек? with ADA.Windows не рабтает, нет такого пакета.
Во-первых, не надо делать лишних вещей, Ада позволяет гораздо более красивую реализацию функции:
function To_CStr (S: String) return CStr is begin return CStr'(Ada.Finalization.Controlled with r => new String'(S)); end;
, а во-вторых, не все то, что Debug_Pool показывает как утечку, на самом деле является таковой, в некоторых случаях этот метод дает осечки. valgrind не нашел утечки (с новой функцией), хотя Debug_Pool по прежнему пишет то же самое...
паскалевская идея с переменной, куда пишется результат, мне нравится больше, потому что сразу всё пишется в результат, без лишнего копирования.
То есть, Extended return, как я понимаю, тоже прошел мимо тебя?
Добавлено через 18 мин.
Цитата
А на самом деле я хочу, чтобы можно было писать хотя бы так: CreateWindow(..., TO_WIDE(ClassName).s, TO_WIDE(Title).s, ....)
Я обычно делал так:
Ну, скажем, надо создать кнопку с кириллицей...(Показать/Скрыть)
В отдельном файле создавались все текстовые константы, файл сохранялся в формате UTF-8 стандартным виндовым блокнотом, и не редактировался редактором из GPS, отображать этот файл среда под Windows умеет, а вот сохранять его - нет, сбивается кодировка. Поэтому редактировались эти константы только родными виндовыми средствами, либо теми, кто точно кодировку не рушит. Я пользовался когда NotePad-ом, а когда SciTE, по настроению. Вот так описываются константы: txtconst.ads
with Interfaces.C;
package TxtConst is use type Interfaces.C.wchar_array;