Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 13:39

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Вывести MessageBox
Автор Сообщение
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
kzagradskiy писал(а):
Похоже проблема WinAPI.
Посмотрел листинги FOBOS. Действительно, имя InitCommonControlsEx присутствует - только это не ф-ия, а тип-структура (то же самое, только большими буквами), которую masm зафигачил самостоятельно. И, по-видимому, она никак не связана с COMCTL32.DLL. По крайней мере, никаких следов наличия последней до того, как я начинаю ее прицеплять руками, не нашел.
Сообщение Добавлено: Сб сен 19, 2015 15:39
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
gudleifr писал(а):
kzagradskiy писал(а):
Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому?
"Предыдущих версиях" чего? Это проблема Win-API или чисто SPF?

Мда... Похоже проблема WinAPI. Тогда может быть какой-нибудь патч для SP-Forth'а?
Сообщение Добавлено: Сб сен 19, 2015 14:59
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
kzagradskiy писал(а):
Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому?
"Предыдущих версиях" чего? Это проблема Win-API или чисто SPF?
Сообщение Добавлено: Сб сен 19, 2015 14:37
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
Цитата:
хочу вывести окно сообщения, пишу
Код:
S" ~YZ/LIB/WINCONS.F" INCLUDED
WINAPI: MessageBoxA user32.dll
: PLACE HERE >R DUP DUP , ALLOT R@ 1+ SWAP CMOVE 0 , R> ;
S" ЗАГОЛОВОК" PLACE VALUE TYTLE
S" УРРААААА!!!!" PLACE VALUE TEXT
: MSGBX 2 TYTLE COUNT DROP TEXT COUNT DROP 0 MessageBoxA ;

MSGBX

- на выходе - ноль. На предыдущей версии форта всё работает, если скомпилить всё в exe-шник тоже всё работает.

У меня тоже самое. SP-Forth 4.20 код:
Код:
WINAPI: MessageBoxA user32.dll
0 S" Заголовок" DROP S" Сообщение" DROP 0 MessageBoxA DROP

-- тоже ничего не показывает, сообщение об ошибке не выдает, в консоль не пишет. В кансоли нажимаю "Enter" -- пишет "Ок".

Добавление строки:
Код:
WINAPI: InitCommonControlsEx COMCTL32.DLL

-- помогло. Поискал в интернете по запросу: "MessageBox COMCTL32.DLL". Оказалось с этим есть проблемы. Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому?

Вот две ссылки которые выдал поиск:

Может кто-то знает почему так и может исправить, чтобы MessageBox работал в режиме интерпретации?
Сообщение Добавлено: Сб сен 19, 2015 14:30
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
В библиотеке ~yz/lib/common.f есть слова для работы с юникодом. А чтобы вывести сообщение используйте MessageboxW
Сообщение Добавлено: Чт апр 29, 2010 00:19
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
Юникод необходимо использовать при генерации диалогов и прочих Win-ресурсов.
Сообщение Добавлено: Ср апр 28, 2010 11:15
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
Alexander писал(а):
) понятно,скажите кто-нибудь Юникод использует для представления текстовых строк?

в каком смысле кто-нибудь? и о каком юникоде речь :)
Сообщение Добавлено: Вт апр 27, 2010 20:10
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
) понятно,
скажите кто-нибудь Юникод использует для представления текстовых строк?
Сообщение Добавлено: Вт апр 27, 2010 20:07
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
ПОНЯТНО СПАСИБО
Сообщение Добавлено: Вт апр 27, 2010 18:22
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
А вот у меня выводится. Значит надо копать на месте.
Сообщение Добавлено: Вт апр 27, 2010 18:15
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
я к тому что именно на SPF -4.20 у меня сообщение выводится не хочет
Сообщение Добавлено: Вт апр 27, 2010 17:51
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
Еще как меняется: в приведенном в первом посте коде делается непонятно что и непонятно зачем - много лишнего и ненужного. Сообщение на винапи выводится одной строчкой. Ровно так, как указано в мсдн - ни больше, ни меньше.
Сообщение Добавлено: Вт апр 27, 2010 17:20
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
Согласен, но суть вопроса от этого не меняется.
Сообщение Добавлено: Вт апр 27, 2010 16:41
  Заголовок сообщения:  Re: Вывести MessageBox  Ответить с цитатой
Проще надо быть:
Код:
WINAPI: MessageBoxA user32.dll
0 S" Заголовок" DROP S" Сообщение" DROP 0 MessageBoxA DROP
Сообщение Добавлено: Вт апр 27, 2010 16:34
  Заголовок сообщения:  Вывести MessageBox  Ответить с цитатой
Здравствуйте. Недавно установил SPF -4.20 и наткнулся на такую хохму: хочу вывести окно сообщения, пишу
Код:
S" ~YZ/LIB/WINCONS.F" INCLUDED
WINAPI: MessageBoxA user32.dll
: PLACE HERE >R DUP DUP , ALLOT R@ 1+ SWAP CMOVE 0 , R> ;
S" ЗАГОЛОВОК" PLACE VALUE TYTLE
S" УРРААААА!!!!" PLACE VALUE TEXT
: MSGBX 2 TYTLE COUNT DROP TEXT COUNT DROP 0 MessageBoxA   ;

MSGBX

- на выходе - ноль. На предыдущей версии форта всё работает, если скомпилить всё в exe-шник тоже всё работает.
После долгих матюков и эксперементов обнаружил: окошко начинает выводится, если в код вставить строчку:
Код:
WINAPI: InitCommonControlsEx COMCTL32.DLL
Какое она имеет к MessageBox-у непонятно. Это что, баг такой или у меня крыша поехала ?!
Сообщение Добавлено: Вт апр 27, 2010 16:29

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB