Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Вывести MessageBox |
|
|
kzagradskiy писал(а): Похоже проблема WinAPI. Посмотрел листинги FOBOS. Действительно, имя InitCommonControlsEx присутствует - только это не ф-ия, а тип-структура (то же самое, только большими буквами), которую masm зафигачил самостоятельно. И, по-видимому, она никак не связана с COMCTL32.DLL. По крайней мере, никаких следов наличия последней до того, как я начинаю ее прицеплять руками, не нашел.
[quote="kzagradskiy"]Похоже проблема WinAPI.[/quote]Посмотрел листинги FOBOS. Действительно, имя InitCommonControlsEx присутствует - только это не ф-ия, а тип-структура (то же самое, только большими буквами), которую masm зафигачил самостоятельно. И, по-видимому, она никак не связана с COMCTL32.DLL. По крайней мере, никаких следов наличия последней до того, как я начинаю ее прицеплять руками, не нашел.
|
|
|
|
Добавлено: Сб сен 19, 2015 15:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: Вывести MessageBox |
|
|
gudleifr писал(а): kzagradskiy писал(а): Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому? "Предыдущих версиях" чего? Это проблема Win-API или чисто SPF? Мда... Похоже проблема WinAPI. Тогда может быть какой-нибудь патч для SP-Forth'а?
[quote="gudleifr"][quote="kzagradskiy"]Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому?[/quote]"Предыдущих версиях" чего? Это проблема Win-API или чисто SPF?[/quote] Мда... Похоже проблема WinAPI. Тогда может быть какой-нибудь патч для SP-Forth'а?
|
|
|
|
Добавлено: Сб сен 19, 2015 14:59 |
|
|
|
|
|
Заголовок сообщения: |
Re: Вывести MessageBox |
|
|
kzagradskiy писал(а): Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому? "Предыдущих версиях" чего? Это проблема Win-API или чисто SPF?
[quote="kzagradskiy"]Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому?[/quote]"Предыдущих версиях" чего? Это проблема 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 работал в режиме интерпретации?
[quote]хочу вывести окно сообщения, пишу Код: 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-шник тоже всё работает.[/quote] У меня тоже самое. SP-Forth 4.20 код: [code]WINAPI: MessageBoxA user32.dll 0 S" Заголовок" DROP S" Сообщение" DROP 0 MessageBoxA DROP[/code] -- тоже ничего не показывает, сообщение об ошибке не выдает, в консоль не пишет. В кансоли нажимаю "Enter" -- пишет "Ок".
Добавление строки: [code]WINAPI: InitCommonControlsEx COMCTL32.DLL[/code] -- помогло. Поискал в интернете по запросу: "MessageBox COMCTL32.DLL". Оказалось с этим есть проблемы. Модальное окно не создается без InitCommonControlsEx. Может в предыдущих версиях было по другому?
Вот две ссылки которые выдал поиск: [list] [url=http://www.codeproject.com/Articles/35210/When-a-MessageBox-in-InitInstance-Didn-t-Show]codeproject.com: When a MessageBox in InitInstance Didn't Show[/url] [url=http://stackoverflow.com/questions/11079228/common-dialogs-dll-cannot-be-loaded-manually]stackoverflow.com: Common Dialogs DLL cannot be loaded manually[/url] [/list]
Может кто-то знает почему так и может исправить, чтобы MessageBox работал в режиме интерпретации?
|
|
|
|
Добавлено: Сб сен 19, 2015 14:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Вывести MessageBox |
|
|
В библиотеке ~yz/lib/common.f есть слова для работы с юникодом. А чтобы вывести сообщение используйте MessageboxW
В библиотеке ~yz/lib/common.f есть слова для работы с юникодом. А чтобы вывести сообщение используйте MessageboxW
|
|
|
|
Добавлено: Чт апр 29, 2010 00:19 |
|
|
|
|
|
Заголовок сообщения: |
Re: Вывести MessageBox |
|
|
Юникод необходимо использовать при генерации диалогов и прочих Win-ресурсов.
Юникод необходимо использовать при генерации диалогов и прочих Win-ресурсов.
|
|
|
|
Добавлено: Ср апр 28, 2010 11:15 |
|
|
|
|
|
Заголовок сообщения: |
Re: Вывести MessageBox |
|
|
Alexander писал(а): ) понятно,скажите кто-нибудь Юникод использует для представления текстовых строк? в каком смысле кто-нибудь? и о каком юникоде речь
[quote="Alexander"]) понятно,скажите кто-нибудь Юникод использует для представления текстовых строк?[/quote] в каком смысле кто-нибудь? и о каком юникоде речь :)
|
|
|
|
Добавлено: Вт апр 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 у меня сообщение выводится не хочет
я к тому что именно на 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
Проще надо быть: [code]WINAPI: MessageBoxA user32.dll 0 S" Заголовок" DROP S" Сообщение" DROP 0 MessageBoxA DROP[/code]
|
|
|
|
Добавлено: Вт апр 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-у непонятно. Это что, баг такой или у меня крыша поехала ?!
Здравствуйте. Недавно установил SPF -4.20 и наткнулся на такую хохму: хочу вывести окно сообщения, пишу [code]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[/code] - на выходе - ноль. На предыдущей версии форта всё работает, если скомпилить всё в exe-шник тоже всё работает. После долгих матюков и эксперементов обнаружил: окошко начинает выводится, если в код вставить строчку:[code]WINAPI: InitCommonControlsEx COMCTL32.DLL[/code] Какое она имеет к MessageBox-у непонятно. Это что, баг такой или у меня крыша поехала ?!
|
|
|
|
Добавлено: Вт апр 27, 2010 16:29 |
|
|
|