Forth
http://fforum.winglion.ru/

создание exe
http://fforum.winglion.ru/viewtopic.php?f=24&t=1101
Страница 1 из 1

Автор:  AlikasS [ Сб янв 05, 2008 18:36 ]
Заголовок сообщения:  создание exe

вот подумал, как оно здесь ( в форте ) exe создается
опыты:
Код:
\ пример создания exe консольного
: test! ." Hi!" CR KEY DROP ;
: (TITLE) ." AlikasS Co" CR CR CR ;
0 TO SPF-INIT?
' ANSI>OEM TO ANSI><OEM
' (TITLE) MAINX !
' test! TO <MAIN>
TRUE TO ?CONSOLE
FALSE TO ?GUI
S" forth-test-cons.exe" SAVE
BYE

\ пример создания exe GUI
WINAPI: MessageBoxA      USER32.DLL
: test! 1 S" Заголовок" DROP S" Сообщение" DROP 0 MessageBoxA DROP BYE ; \
0 TO SPF-INIT?
' ANSI>OEM TO ANSI><OEM
' test! TO <MAIN>
FALSE TO ?CONSOLE
TRUE TO ?GUI
S" Hi.exe" SAVE
BYE

из непоняток
0 TO SPF-INIT?
' ANSI>OEM TO ANSI><OEM

когда применять?

Автор:  AlikasS [ Сб янв 05, 2008 20:16 ]
Заголовок сообщения: 

может кто из
ГУРУ( адепт, ваш_ник ) просветит?

Автор:  mOleg [ Сб янв 05, 2008 20:25 ]
Заголовок сообщения: 

AlikasS писал(а):
из непоняток
0 TO SPF-INIT?

необходимо ли читать spf4.ini файл при запуске системы.
смотри в init.spf

Автор:  mOleg [ Сб янв 05, 2008 20:29 ]
Заголовок сообщения: 

AlikasS писал(а):
' ANSI>OEM TO ANSI><OEM
когда применять?

когда хочешь работать с win кодировкой это надо делать, иначе будет iso866, и соответственно кракозябры вместо русских букв. Но, если сообщения на английском - то пофигу.

Автор:  ygrek [ Вс янв 06, 2008 12:49 ]
Заголовок сообщения: 

http://spf.sourceforge.net/docs/intro.ru.html#save

т.е. при нулевом SPF-INIT? не будeт читаться spf4.ini и параметры коммандной строки надо будет разбирать вручную. (с помощью ~day/clparam.f например)

ANSI><OEM это вектор который вызывается в TYPE. Отвечает за перекодировку.
Консоль windows работает в кодировке OEM aka cp866 (для русского языка).
Т.е. для того чтобы вывести русский текст в консоль есть два варианта - набирать его в форт-коде в кодировке DOS (не приветствуется), или использовать кодировку ANSI aka cp1251 и тогда надо установить этот вектор в ANSI>OEM.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/