Альтернативы включают массивы, генераторы , и инверсия управления , но ни один не является соответствующим здесь.
Некоторые (например, Microsoft в историческом Win32) склонны использовать параметры ссылки для простоты, потому что ясно, кто выделяет и как это будет считать стек, уменьшает быстрое увеличение структур и позволяет отдельное возвращаемое значение для успеха.
"Чистые" программисты предпочитают структуру, предполагая, что это значение функции (как имеет место здесь), а не что-то, что это затронуто случайно функцией. Если бы у Вас была более сложная процедура или что-то с состоянием, Вы, вероятно, использовали бы ссылки (предполагающий, что у Вас есть причина того, что не использовался класс).
Шаг 1: создайте рабочий каталог. Откройте командную строку Windows. Это, вероятно, находится в меню «Пуск», «Стандартные», «Командная строка». Введите команду «mkdir temp», затем перейдите в этот каталог с помощью «cd temp»:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Owner>mkdir temp
C:\Documents and Settings\Owner>cd temp
C:\Documents and Settings\Owner\temp>
Запишите, где находится этот каталог. Он должен сказать вам прямо в приглашении.
Шаг 2: Загрузите необходимые файлы. Вам понадобятся три вещи: базовый набор , включающий Tk (который станет частью обернутого приложения), sdx.kit (tclkit, в котором есть команды, выполняющие упаковку) и версия командной строки tclkit (из которой будет запускаться sdx.kit).
Загрузите три файла и поместите их во временный каталог, который вы создали. Строго говоря, в этом нет необходимости, но это упрощает этот урок. Переименуйте командную строку в tclkit, чтобы упростить работу с руководством:
C:\Documents and Settings\Owner\temp>dir
Volume in drive C has no label.
Volume Serial Number is F434-9FD3
Directory of C:\Documents and Settings\Owner\temp
09/05/2009 04:32 PM <DIR> .
09/05/2009 04:32 PM <DIR> ..
09/05/2009 04:21 PM 105,528 sdx.kit
09/05/2009 04:31 PM 1,268,686 tclkit-win32.upx.exe
09/05/2009 04:27 PM 668,142 tclkitsh-win32.upx.exe
3 File(s) 2,042,356 bytes
2 Dir(s) 13,232,046,080 bytes free
C:\Documents and Settings\Owner\temp>rename tclkitsh-win32.upx.exe tclkit.exe
Шаг 3: убедитесь, что все работает. Запустите sdx.kit без других аргументов. Он должен распечатать небольшую справочную информацию:
C:\Documents and Settings\Owner\temp>tclkit sdx.kit
Specify one of the following commands:
addtoc eval fetch ftpd httpd httpdist ls lsk
md5sum mkinfo mkpack mkshow mksplit qwrap ratarx rexecd
starsync sync tgz2kit treetime unwrap update version wrap
For more information, type: sdx.kit help ?command?
C:\Documents and Settings\Owner\temp>
Шаг 4: создайте каталог для вашего кода . sdx предполагает, что для приложения с именем «myapp» существует каталог с именем «myapp.vfs»:
C:\Documents and Settings\Owner\temp>mkdir myapp.vfs
C:\Documents and Settings\Owner\temp>dir
Volume in drive C has no label.
Volume Serial Number is F434-9FD3
Directory of C:\Documents and Settings\Owner\temp
09/05/2009 04:37 PM <DIR> .
09/05/2009 04:37 PM <DIR> ..
09/05/2009 04:37 PM <DIR> myapp.vfs
09/05/2009 04:21 PM 105,528 sdx.kit
09/05/2009 04:31 PM 1,268,686 tclkit-win32.upx.exe
09/05/2009 04:27 PM 668,142 tclkit.exe
3 File(s) 2,042,356 bytes
3 Dir(s) 13,231,599,616 bytes free
C:\Documents and Settings\Owner\temp>
Шаг 5: создайте свой код . Создайте файл с именем «main.tcl» и поместите его в каталог myapp.vfs. Используйте блокнот или текстовый редактор по вашему выбору. Дайте файлу следующее содержимое:
package require Tk
label .l -text "Hello, world"
pack .l
Убедитесь, что myapp.vfs выглядит следующим образом:
C:\Documents and Settings\Owner\temp>dir myapp.vfs
Volume in drive C has no label.
Volume Serial Number is F434-9FD3
Directory of C:\Documents and Settings\Owner\temp\myapp.vfs
09/05/2009 04:40 PM <DIR> .
09/05/2009 04:40 PM <DIR> ..
09/05/2009 04:40 PM 60 main.tcl
1 File(s) 60 bytes
2 Dir(s) 13,231,456,256 bytes free
Шаг 6: оберните код с помощью sdx. Поместив рабочий каталог в исходный временный каталог, выполните следующую команду, чтобы обернуть код.
C:\Documents and Settings\Owner\temp>tclkit sdx.kit wrap myapp -runtime tclkit-w
in32.upx.exe
1 updates applied
C:\Documents and Settings\Owner\temp>dir
Volume in drive C has no label.
Volume Serial Number is F434-9FD3
Directory of C:\Documents and Settings\Owner\temp
09/05/2009 04:43 PM <DIR> .
09/05/2009 04:43 PM <DIR> ..
09/05/2009 04:44 PM 1,272,604 myapp
09/05/2009 04:40 PM <DIR> myapp.vfs
09/05/2009 04:21 PM 105,528 sdx.kit
09/05/2009 04:31 PM 1,268,686 tclkit-win32.upx.exe
09/05/2009 04:27 PM 668,142 tclkit.exe
5 File(s) 3,315,000 bytes
3 Dir(s) 13,229,654,016 bytes free
Шаг 7: переименуйте упакованный файл, чтобы он имел суффикс .exe. sdx.kit должен был создать файл с именем «myapp». Для запуска вам необходимо переименовать его в «myapp.exe». Как только вы это сделаете, вы можете запустить его, набрав команду «myapp» или дважды щелкнув значок в окне проводника.
C:\Documents and Settings\Owner\temp>rename myapp myapp.exe
C:\Documents and Settings\Owner\temp>myapp
Если все прошло хорошо, должно появиться окно с надписью «Hello, world»