Форум программистов, компьютерный форум, киберфорум
FASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62

FASM макросы, где найти полное описание?

19.01.2025, 21:09. Показов 2016. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попался в исходниках такой макрос:
Assembler
1
2
3
4
5
6
7
8
9
macro InitializeAll \{
    \common
    rept ci x \\{
      \\forward
      if defined i\\#x
        call i\\#x
      end if
    \\}
  \}
а в FASM источниках макросы так не описываются. Как работает данный макрос?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2025, 21:09
Ответы с готовыми решениями:

Где найти полное описание Хранимых процедур?
Люди! Не могу я больше рыскать по инету в поисках описание. пальцы по клавишам не попадают :((( Ну не могу я найти описнаие хранимых...

Где взять полное описание прерываний BIOS?
подскажите где взять наиболее полное описание прерываний BIOS

Где можно скачать полное описание стандарта C++ (желательно поновее)?
Добрый день . Подскажите пожалуйста где можно скачать полное описание стандарта C++, желательно поновее. RNT, пожалуйста,...

16
Невнимательный
 Аватар для ft4l
2835 / 1257 / 357
Регистрация: 08.02.2013
Сообщений: 7,305
Записей в блоге: 2
20.01.2025, 01:06
Лучший ответ Сообщение было отмечено alex1234566 как решение

Решение

Цитата Сообщение от alex1234566 Посмотреть сообщение
в FASM источниках макросы так не описываются.
описывыаются ... где-то в FASM.pdf ... InstructionSet->PreprocessorDirectives
понять только трудно ))
Там вроде есть перевод доков https://board.flatassembler.net/topic.php?t=21892
... немного не к свежей версии, но в целом норм... насчёт препроцессора, этих forward-reverse-common,rept, ...

Если честно я тоже не понял что за макрос , обычно количество слешей увеличивается с увеличением вложенности блоков.
и как-бы должно быть что-то типа
Code
1
2
3
4
5
6
7
8
9
 macro InitializeAll {
    common
    rept ci x \{
      \forward
      if defined i\#x
        call i\#x
      end if
    \}
  }
но тогда чего-то типа аргументов не хватает... этот макрос используется в каком-то макросе,
или почему так ... я тоже не понял и даже наверное можно не понять, когда увидеть в целом что-где и как в коде))
1
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
20.01.2025, 14:17  [ТС]
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
macro __InitInitializeEngine {
  local i,f,ci,cf
  ci equ 0
  cf equ 0
 
  macro add_initialize procname \{
    \common
    rept 1 x:ci+1 \\{
      ci equ x
      i\\#x equ procname
    \\}
  \}
 
  macro add_finalize procname \{
    \common
    rept 1 x:cf+1 \\{
      cf equ x
      f\\#x equ procname
    \\}
  \}
 
  macro initialize procname \{
    \common
    rept 1 x:ci+1 \\{
      ci equ x
      i\\#x equ procname
      proc procname
    \\}
  \}
 
  macro finalize procname \{
    \common
    rept 1 x:cf+1 \\{
      cf equ x
      f\\#x equ procname
      proc procname
    \\}
  \}
 
 
  macro InitializeAll \{
    \common
    rept ci x \\{
      \\forward
      if defined i\\#x
        call i\\#x
      end if
    \\}
  \}
 
  macro FinalizeAll \{
    \common
    rept cf x \\{
      \\reverse
      if defined f\\#x
        call f\\#x
      end if
    \\}
  \}
}
получается это все определение одного макроса

Добавлено через 29 минут
Все равно не понятно. во что оно разворачивается
0
Невнимательный
 Аватар для ft4l
2835 / 1257 / 357
Регистрация: 08.02.2013
Сообщений: 7,305
Записей в блоге: 2
20.01.2025, 16:43
Цитата Сообщение от alex1234566 Посмотреть сообщение
во что оно разворачивается
В несколько макросов )) которые соответственно где-то будут вызываться

Есть кое-что что по мелочи может помочь разобраться
Но я точно не понял как должно грамотно делаться например такое, как я делаю в винде

скачал я fasmw-1.73,
распаковал куда-то , например d:\C\fasmw1.73\
запускаю cmd, делаю там например такое
D:\C\fasmw1.73>SET "PROMPT=%% $P$_%% $S"

%% D:\C\fasmw1.73
%% cd /d d:\C\fasmw1.73\TOOLS\WIN32\

%% D:\C\fasmw1.73\TOOLS\WIN32
%% set INCLUDE=d:\C\fasmw1.73\INCLUDE;%INCLUDE%

%% D:\C\fasmw1.73\TOOLS\WIN32
%% set "PATH=D:\C\fasmw1.73;%PATH%"

%% D:\C\fasmw1.73\TOOLS\WIN32
%% DIR /B *.ASM
LISTING.ASM
PREPSRC.ASM
SYMBOLS.ASM

%% D:\C\fasmw1.73\TOOLS\WIN32
%% fasm LISTING.ASM
flat assembler version 1.73.32 (1048576 kilobytes memory)
4 passes, 0.1 seconds, 4608 bytes.

%% D:\C\fasmw1.73\TOOLS\WIN32
%% fasm PREPSRC.ASM
flat assembler version 1.73.32 (1048576 kilobytes memory)
3 passes, 0.1 seconds, 2560 bytes.

%% D:\C\fasmw1.73\TOOLS\WIN32
%% fasm SYMBOLS.ASM
flat assembler version 1.73.32 (1048576 kilobytes memory)
3 passes, 0.1 seconds, 4096 bytes.


LISTING.EXE PREPSRC.EXE SYMBOLS.EXE потом копирую/перемещаю в D:\C\fasmw1.73

а например здесьже запусаю создаю файл 1.asm
... подтвердив создание, при запуске блокнота с %% notepad .\1.asm
вставляю Ваш код, добавляю в конце вызов макроса
Assembler
62
__InitInitializeEngine
И
%% D:\C\fasmw1.73\TOOLS\WIN32
%% fasm .\1.asm -s 1.si
flat assembler version 1.73.32 (1048576 kilobytes memory)
1 passes, 0 bytes.

%% D:\C\fasmw1.73\TOOLS\WIN32
%% PREPSRC 1.si 1.txt


На выходе 1.txt со слонячим таким комментарием )
Примерно можно понять какой код и какие макросы создаются после вызова
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
;
; Тут в начале блок полностью поыторяет макрос... а дальше что получилось после вызова
;
 
 
;__InitInitializeEngine
; i?0 f?1 ci?2 cf?3
;ci?2 equ 0
;cf?3 equ 0
;macro add_initialize procname{
; common
; rept 1 x:ci?2+1 \{
; ci?2 equ x
; i?0 \# x equ procname
; \}
;}
;macro add_finalize procname{
; common
; rept 1 x:cf?3+1 \{
; cf?3 equ x
; f?1 \# x equ procname
; \}
;}
;macro initialize procname{
; common
; rept 1 x:ci?2+1 \{
; ci?2 equ x
; i?0 \# x equ procname
; proc procname
; \}
;}
;macro finalize procname{
; common
; rept 1 x:cf?3+1 \{
; cf?3 equ x
; f?1 \# x equ procname
; proc procname
; \}
;}
;macro InitializeAll{
; common
; rept ci?2 x \{
; \forward
; if defined i?0 \# x
; call i?0 \# x
; end if
; \}
;}
;macro FinalizeAll{
; common
; rept cf?3 x \{
; \reverse
; if defined f?1 \# x
; call f?1 \# x
; end if
; \}
;}
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
20.01.2025, 19:56
Не очень понимаю макроязык FASM, по ощущениям, ради переменных макроса создаётся макрос обёртка.
После вызова обёртки в программе объявляются несколько переменных и несколько макросов.
"Вторичные" макросы для инициализации и финализации программы - с их помощью определяют список из нескольких подпрограмм, которые будут вызываться в самом начале программы, и такой же список - в конце программы.
После определения списков последовательный вызов подпрограмм инициализации вызывается одним макросом InitializeAll.
По аналогии, подпрограммы выхода вызываются одним макросом FinalizeAll.

Не могу сообразить, как в переменных сохраняются списки... Но, может, кто-нибудь с желанием или опытом разберётся.
0
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
20.01.2025, 20:13  [ТС]
Assembler
1
2
3
4
5
6
7
8
;InitializeAll
 
;rept ci?2 x{
; forward
; if defined i?0#x
; call i?0#x
; end if
;}
после вызова InitializeAll остается и в какой код он разворачивается?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
20.01.2025, 20:43
Если перед этим были вызовы
Assembler
1
2
3
add_initialize init_proc_1
add_initialize init_proc_2
add_initialize init_proc_3
То после этого при вызове InitializeAll будет сформирован текст
Assembler
1
2
3
call init_proc_1
call init_proc_2
call init_proc_3
Я так думаю...

Добавлено через 6 минут
Мне лень проверять набором тестовой программы, да и не ручаюсь за правильность макроса.
Но, судя по всему, предполагалось такое поведение.
1
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
21.01.2025, 10:01  [ТС]
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
start:
         InitializeAll
        stdcall SetSegmentationFaultHandler, 0
        call    InitGUIApplication
 
        call    GUI.Init
        call    ASM.Init
 
        call    InitIDEParameters
 
        stdcall CreateFromTemplate, tplMainForm, 0
 
        call    InitAllMenus
        call    InitMainToolbar
        call    InitSearch
 
        set     [frmMain], TWindow:Visible, TRUE                                                                             
 
        call    SetMainWindowState
 
        call    InitProjectManager
        call    InitMessagesWindow
        call    InitOptionsDialog
        call    StartHelpServer
 
        stdcall ParseCommandLine
 
        stdcall Run
 
        call    StopHelpServer
        call    FinalizeOptionsDialog
        call    FinalizeMessagesWindow
        call    FinalizeProjectManager
 
        call    FreeAllMenus
        call    FreeIDEParameters
 
        call    ASM.Finalize
        call    GUI.Finalize
 
        call    TerminateGUI
        FinalizeAll
        stdcall TerminateAll, 0
вся программа и я ее хочу в из макросов в команды ассемблера перевести.
получается первый макрос ничего не делает?
0
Невнимательный
 Аватар для ft4l
2835 / 1257 / 357
Регистрация: 08.02.2013
Сообщений: 7,305
Записей в блоге: 2
21.01.2025, 11:50
Цитата Сообщение от alex1234566 Посмотреть сообщение
первый макрос ничего не делает?
Для чего-то видимо нужен его вызов... если вызван...
Эти call это может быть и переход на метку и выполнение того, чего там дальше, включая вызовы макросов,
пока не ret,retn, retf,...
Это , мягко говоря, не "Вся программма" , а некий порядок выполнения неких кусков программы.

Упрощение может помочь понять
например если упростить всё до такого 1.asm
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
macro __InitInitializeEngine {
  local i,ci
  ci equ 0
 
  macro add_initialize procname \{
    \common
    rept 1 x:ci+1 \\{
      ci equ x
      i\\#x equ procname
    \\}
  \}
; там add_initialize и initialize вроде идентичные/однотипные макросы
  macro InitializeAll \{
    \common
    rept ci x \\{
      \\forward
      if defined i\\#x
        call i\\#x
      end if
    \\}
  \}
}
 
__InitInitializeEngine
add_initialize uno
add_initialize duo
add_initialize tre
 
format COFF
  dd 0,0,0,0,0
  dd 0,0,0,0,0
    
InitializeAll
ret
 
uno:
    display "from uno",10
    ret
duo:
    display "from duo",10
    ret
tre:
    display "from tre",10
    ret
и снова такое
Code
1
2
3
4
5
6
7
8
9
10
11
% d:\C\fasmw1.73
     fasm 1.asm -s 1.si
flat assembler  version 1.73.32  (1048576 kilobytes memory)
from uno
from duo
from tre
 
3 passes, 141 bytes.
 
% d:\C\fasmw1.73
     PREPSRC.EXE 1.si 1.txt
То в 1.txt видно,
что формируется цепочка if ... end if формируется после 0,0,0,0,0,0,0,0,0,0
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
format COFF
dd 0,0,0,0,0
dd 0,0,0,0,0
 
;InitializeAll
 
;rept ci?1 x{
; forward
; if defined i?0#x
; call i?0#x
; end if
;}
 
if defined uno
call uno
end if
if defined duo
call duo
end if
if defined tre
call tre
end if
ret
 
uno:
display 'from uno',10
ret
duo:
display 'from duo',10
ret
tre:
display 'from tre',10
ret
Добавлено через 9 минут

Не по теме:

Цитата Сообщение от ft4l Посмотреть сообщение
format COFF
Лишнее :) ... 1.bin чуть понятнее, чем 1.obj



Добавлено через 6 минут
... хотя например IDA декомпилятор покажет понятнее 1.obj
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
.flat:00000000 ; ã=========================================================================¬
.flat:00000000 ; ¦     This file is generated by The Interactive Disassembler (IDA)        ¦
.flat:00000000 ; ¦     Copyright (c) 2005 by DataRescue sa/nv, <ida@datarescue.com>        ¦
.flat:00000000 ; ¦ Licensed to: Kuznecov Gennady, ISTA, <kuznecov@ista.ru>, 1 user, adv, 10/2005 ¦
.flat:00000000 ; L=========================================================================-
.flat:00000000 ;
.flat:00000000 ; File Name   : D:\C\fasmw1.73\1.obj
.flat:00000000 ; Format      : COFF (X386MAGIC)
.flat:00000000
.flat:00000000                 .686p
.flat:00000000                 .mmx
.flat:00000000                 .model flat
.flat:00000000
.flat:00000000 ; ===========================================================================
.flat:00000000
.flat:00000000 ; Segment type: Pure code
.flat:00000000 _flat           segment para public 'CODE' use32
.flat:00000000                 assume cs:_flat
.flat:00000000                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
.flat:00000000 _flat_0         dd 0Ah dup(0)
.flat:00000028 ; ---------------------------------------------------------------------------
.flat:00000028                 call    nullsub_1
.flat:0000002D                 call    nullsub_2
.flat:00000032                 call    nullsub_3
.flat:00000037                 retn
.flat:00000038
.flat:00000038 ; --------------- S U B R O U T I N E ---------------------------------------
.flat:00000038
.flat:00000038
.flat:00000038 nullsub_1       proc near               ; CODE XREF: .flat:00000028p
.flat:00000038                 retn
.flat:00000038 nullsub_1       endp
.flat:00000038
.flat:00000039
.flat:00000039 ; --------------- S U B R O U T I N E ---------------------------------------
.flat:00000039
.flat:00000039
.flat:00000039 nullsub_2       proc near               ; CODE XREF: .flat:0000002Dp
.flat:00000039                 retn
.flat:00000039 nullsub_2       endp
.flat:00000039
.flat:0000003A
.flat:0000003A ; --------------- S U B R O U T I N E ---------------------------------------
.flat:0000003A
.flat:0000003A
.flat:0000003A nullsub_3       proc near               ; CODE XREF: .flat:00000032p
.flat:0000003A                 retn
.flat:0000003A nullsub_3       endp
.flat:0000003A
.flat:0000003A _flat           ends
.flat:0000003A
.flat:0000003A
.flat:0000003A                 end
0
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
21.01.2025, 14:55  [ТС]
в fasm есть команда, которая бы обработала все макросы, но не выполняла компиляцию?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
21.01.2025, 18:05
Желания читать руководство нет, но если бы было - искал бы команду формирования листинга среди параметров командной строки, и там же - уровень детализации листинга - типо раскрывать макросы, включаемые файлы и пр.
У masm такие есть, по аналогии могут быть у fasm, хотя пробовал получить листинг у nasm - он был неинформативным.

Скачайте на официальном сайте самое свежее руководство - там должен быть ответ на Ваш вопрос.
0
Невнимательный
 Аватар для ft4l
2835 / 1257 / 357
Регистрация: 08.02.2013
Сообщений: 7,305
Записей в блоге: 2
21.01.2025, 19:34
alex1234566, я не нашёл ничего такого .
Всё что предгагается

usage: fasm <source> [output]
optional settings:
-m <limit> set the limit in kilobytes for the available memory
-p <limit> set the maximum allowed number of passes
-d <name>=<value> define symbolic variable
-s <file> dump symbolic information for debugging

Плюс те tools.
listing показывает всякое E8 06 00 00 00 E8 02 00 00 00
вместо того во что развернулись макросы
prepsrc показывает что-то до того , как транслируется в бинари.
Возможно просто не сущёствует такого момента, когда всё в текстовом из одних инструкций, перед тем как всё в бинарном.
Дебагеры/дизасемблеры тоже не встречал, чтобы в fasm-синтаксисе показывали...
... но может и есть то о чём Вы подумали... код открыт , любые хотелки возможно досочинять, при жутко каком желании ))
Наверное проще чего-то на perl,) скомбинировать из этих -s <file> или из выхлопа listing + prepsrc.
0
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
28.01.2025, 20:23  [ТС]
Все включаемые файлы в один собрал, перестал fasm собираться, когда файлы в include нормально собирается, почему так может быть?
Вложения
Тип файла: 7z fresh..7z (337.1 Кб, 5 просмотров)
0
Невнимательный
 Аватар для ft4l
2835 / 1257 / 357
Регистрация: 08.02.2013
Сообщений: 7,305
Записей в блоге: 2
28.01.2025, 23:22
Цитата Сообщение от alex1234566 Посмотреть сообщение
Все включаемые файлы в один
Не совсем понятно зачем...
Включаемые обычно на то и расчитаны, что включать можно из разных файлов с кодом.
Например вызова __InitI18nEngine например в коде нет, а объявление есть.
Где-то одно может такое использоваться, где что-то другое, ....
Мне вообще кажется как-то линкера ещё отдельного fasm'у не хватает ,))
чтобы ещё больше фрагментировать и компилить кучи файлов отдельно, чтобы потом слинковать в один.

Не вникал , но вроде должно были быть сообщения о ошибках, какие-нибудь где-нибудь.
Вероятнее всего что-то не в том порядке пошло... при каждом проходе вроде везде используется предшествующее в нём же
Цитата Сообщение от alex1234566 Посмотреть сообщение
Assembler
175
176
TargetOS equ Linux
strTargetOS equ 'Linux'
под линуксом собираете ?
0
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
29.01.2025, 21:20  [ТС]
под линуксом

Добавлено через 5 часов 41 минуту
почему-то в некоторых включениях последние строки не добавились.
сразу после определения есть вызов __InitI18nEngine
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
29.01.2025, 21:28

Не по теме:

Дремучим сибирским лесорубам подарили новую
японскую бензопилу. Подставили доску:
- Вжик! - сказала японская бензопила.
- Ух ты! - сказали дремучие сибирские лесорубы.
Подставили бревно:
- Вжик! - сказала японская бензопила.
- Ух ты! - сказали дремучие сибирские лесорубы.
Подставили железный лом:
- Крррр....! - сказала японская бензопила.
- А бля! - сказали дремучие сибирские лесорубы.



Продолжаем наблюдение.
0
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
24.05.2025, 20:03  [ТС]
файл компилируется, если добавить все файлы ресурсов, которые он грузит
Вложения
Тип файла: zip Fresh.asm.zip (435.7 Кб, 0 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2025, 20:03
Помогаю со студенческими работами здесь

Макросы fasm
можно ли переопределить макросы в фасме на свои? к прмеру я хочу заделать чтобы = действовал как в плюсах. типа такого: ...

Макросы и директивы компилятора FASM
Макросы и директивы компилятора FASM автор Dreamer2 взято здесь Макрокоманды С помощью макрокоманд Вы можете создавать ваши...

Как найти координату точки по оси X на дуге окружности? (Полное описание внутри)
Центр окружности неизвестен. Но известен радиус R=10. И известны координаты точки A(16;27) Нужно найти координату Х точки B(x;29) на...

Джейсон, П.П. Visual C#.NET Полное руководство(где найти)
простите, если не туда. ищу эту книгу в электронном виде. нашел на одном сайте, но не могу скачать адрес удален если у кого-то...

Где найти описание IDE
Я знаю синтаксис языка C++, но никак не могу найти книгу в которой рассказалибы о различных командах, библиотеках и описали назначение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru