Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.99/76: Рейтинг темы: голосов - 76, средняя оценка - 4.99
Заблокирован

Как узнать исходный код файла-ЕХЕ для Visual Basic 6.0?

19.09.2015, 12:03. Показов 17756. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Прошу помощи. Как узнать P-Code? Научите, пожалуйста, пользоваться компиляторами и декомпиляторами.
У языка VB6.0 осталось богатое наследство, за 20 лет. Часто приходится сталкиваться с файлами-ЕХЕ, возникают вопросы:
1) Как создавать файл-ЕХЕ для на Visual Basic 6.0?
2) Предположим, есть исполняемый файл. Исходного кода не знаю. Может ли помочь декомпилятор? Правильно ли, что "VB Decompiler Lite", именно "Lite" — толку не даст?! VB Native помогает — как мертвому веник в бане. Где выход?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2015, 12:03
Ответы с готовыми решениями:

Как пользоваться отладчиком OllyDbg на файлах-ЕХЕ для Visual Basic 6.0?
Добрый вечер! Прошу научить пользоваться отладчиком OllyDbg. Имею: Windows 7, 32 Bit. Скачал почти все книги Касперски — жуть (!), без...

Как узнать IP - адресс в Microsoft Visual Basic?
Как программно узнать IP-адресс компьютера???

Как узнать исходный код метода из dll через код C#?
Как узнать исходный код метода из dll через код C#? помогите, пожалуйста!! :sorry:

24
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
23.09.2015, 18:42
Студворк — интернет-сервис помощи студентам
Как и обещал, форма:
Visual Basic
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
' Decompiled by The trick 2015
 
Option Explicit
 
Private Sub Command1_Click()
    Dim ebp64() As Long
    Dim ebp44   As Long
    Dim ebp30   As Long
    Dim ebp60() As Variant
    Dim ebp104  As Long
    Dim ebp24   As Long
    Dim ebp2c   As Long
    Dim ebp28   As Long
    Dim ebp108  As Long
    Dim ebp40   As Variant
    Dim ebp4c   As Long
    
    ebp44 = proc_710(ebp64())
    
    ebp30 = CLng(CDbl(Text3.Text))
    
    List1.Clear
    Label2.Visible = True
    txtRes.Text = vbNullString
    txtRes1.Text = vbNullString
    Command1.Enabled = False
    
    DoEvents
    
    ReDim ebp60(1 To 1)
    
    For ebp24 = 1 To ebp44
        
        For ebp28 = 1 To ebp64(ebp24, 2)
        
            ebp2c = ebp2c + 1
            
            ReDim Preserve ebp60(1 To ebp2c)
 
            ebp60(ebp2c) = ebp64(ebp24, 1)
 
        Next
        
    Next
    
    Dim ebp5c   As String
    Dim ebp54   As String
    Dim ebp114  As Long
    Dim ebp110  As Long
    Dim ebpa8   As Variant
    Dim ebp50   As Long
    Dim ebp184  As Double
    Dim ebp48   As Long
    Dim ebp58   As Long
    Dim ebpec   As Long
    Dim ebpd0   As Boolean
    
    ' LOOP_1
    Do
        
        ebp5c = vbNullString
        ebp50 = 0
        
        Call proc_704(ebp60, ebp2c)
        
        ebp40 = LongSumEl(ebp60, ebp30, ebp4c)
        
        ' CONDITION_VARTYPE
        If VarType(ebp40) = (vbArray Or vbLong) Then
            ' FOR_1
            For ebp24 = LBound(ebp40) To UBound(ebp40)
                ' CONDITION_EBP40
                If ebp40(ebp24) <> 0 Then
                    
                    ebp5c = ebp5c & ebpa8 & ebp40(ebp24) & "   "
                    ebp50 = CLng(ebp40(ebp24) + ebp50)
                    ' FOR_2
                    For ebp28 = 1 To ebp2c
                        
                        ' CONDITION_EQUALS
                        If ebp60(ebp28) = ebp40(ebp24) Then
                            
                            ebp40(ebp24) = 0
                            ebp60(ebp28) = 0
    
                        End If
                        
                    Next
                    
                End If
                
            Next
    
            Label2.Caption = CStr(Val(CStr(ebp2c / 100)))
            
            DoEvents
            
            If ebp50 = 0 Then Exit Do
            
            ebp54 = ebp54 & (ebp48 + 1) & "." & Chr$(9) & ebp5c & "   Отходы  " & CStr(ebp30 - ebp50) & vbNewLine
            
            ebp58 = ebp58 + (ebp30 - ebp50)
            ebp48 = ebp48 + 1
        
        Else
            
            ebpec = proc_708(ebp60, ebp2c)
            
            ' CONDITION_EBPEC
            If ebpec < ebp30 And ebp40 <> ebp30 Then
                ' FOR_3
                For ebp28 = 1 To ebp2c
                    
                    ' CONDITION_EBP60_NE
                    If ebp60(ebp28) <> 0 Then
                        
                        ebp5c = ebp60(ebp28) & "   " & ebp5c
                        ebp60(ebp28) = 0
                        
                    End If
                    
                Next
           
                ebp54 = ebp54 & CStr(ebp48 + 1) & "." & Chr$(9) & ebp5c & "   Отходы  " & ebp40 & vbNewLine
                ebp58 = ebp58 + Val(CStr(ebp40))
                
                ebp48 = ebp48 + 1
                Exit Do
                
            End If
 
            ebpec = proc_70c(ebp64(), ebp44)
            
            If ebp4c > ebpec Then Exit Do
            
            ebp4c = ebp4c + 5
            
        End If
        
    Loop
 
    On Error Resume Next
    
    List1.AddItem " "
    List1.AddItem "Всего потребуется досок " & ebp48
    List1.AddItem "Отходы (всего ) " & ebp58
    ' !!!!!!!!!!!!! Check ebpa8
    ebpa8 = Round(ebp58 / ebp30, 2)
    List1.AddItem "Отходы (доски, шт) " & ebpa8
    
    ebpa8 = Round(ebp58 / ebp30 / ebp48 * 100, 2)
    List1.AddItem "Отходы (всего, %) " & ebpa8
    
    txtRes.Text = ebp54
    Label2.Visible = False
    
    Command1.Enabled = True
    
    DoEvents
    
    txtRes1.Text = proc_700(ebp54)
    
End Sub
 
Private Function proc_700(v1 As String) As String
    Dim ebp24 As Long
    Dim ebp34 As Variant
    Dim ebp38 As String
    Dim ebp18 As Long
    Dim ebp20 As Long
    
    ebp34 = Split(v1, vbNewLine)
    ebp24 = UBound(ebp34)
    ebp38 = Split(ebp34(0), Chr$(9))(1)
    ebp20 = 1
    
    ' FOR_EBP18
    For ebp18 = 1 To ebp24
        ' CONDITION_EBP18
        If ebp34(ebp18) <> vbNullString Then
            ' CONDITION_SPLIT
            If Split(ebp34(ebp18), Chr$(9))(1) = ebp38 Then
            
                ebp20 = ebp20 + 1
                
            Else
            
                proc_700 = proc_700 & CStr(ebp20) & " раз " & Chr$(9) & ebp38 & vbNewLine
                
                ebp20 = 1
                
                If ebp34(ebp18) <> vbNullString Then
                    
                   ebp38 = Split(ebp34(ebp18), Chr$(9))(1)
                    
                End If
                
            End If
            
        End If
        
    Next
    
    proc_700 = proc_700 & CStr(ebp20) & " раз " & Chr$(9) & ebp38 & vbNewLine
    
End Function
 
Private Function proc_70c(v() As Long, v1 As Variant) As Long
    Dim edi     As Long
    
    proc_70c = v(1, 1)
    
    If v1 < 1 Then Exit Function
    
    For edi = 1 To v1
    
        If v(edi, 1) > proc_70c Then
            
            If v(edi, 2) > 0 Then
                proc_70c = v(edi, 1)
            End If
            
        End If
        
    Next
 
End Function
 
Private Function proc_708(v() As Variant, v1 As Long) As Long
    Dim edi As Long
    
    For edi = 1 To v1
        proc_708 = proc_708 + v(edi)
    Next
 
End Function
 
Public Function LongSumEl(v() As Variant, v1 As Long, v2 As Long) As Variant
    Dim ebp40() As Long
    Dim ebp44() As Long
    Dim esi     As Long
    Dim ebp7c   As Long
    Dim ebp18   As Long
    Dim ebp1c   As Long
    Dim ebp34   As Long
    Dim ebp38   As Long
    Dim edi     As Long
 
    ebp34 = v1 - v2
    
    If v1 > 80000000 Or v1 < 0 Then Exit Function
    
    ReDim ebp40(v1)
    
    For esi = 1 To v1
        ebp40(esi) = -1
    Next
    
    ebp7c = UBound(v(), 1)
    
    For ebp18 = 1 To ebp7c
 
        ebp1c = v1 - v(ebp18)
 
        Do While ebp1c >= 0
 
            If ebp40(ebp1c) >= 0 Then
            
                edi = v(ebp18) + ebp1c
                
                If ebp40(edi) = -1 Then ebp40(edi) = ebp1c
    
                If edi >= ebp34 Then
                    
                    Do
                        ebp38 = ebp38 + 1
                    
                        ReDim Preserve ebp44(1 To ebp38)
 
                        ebp44(ebp38) = edi - ebp40(edi)
                        edi = ebp40(edi)
                        
                    Loop While edi
                    
                    LongSumEl = ebp44()
                    
                    Exit Function
                    
                End If
                
            End If
            
            ebp1c = ebp1c - 1
            
        Loop
 
    Next
    
    edi = v1
    
    Do While edi >= 1
 
        If ebp40(edi) >= 0 Then Exit Do
        edi = edi - 1
        
    Loop
    
    LongSumEl = v1 - edi
    
End Function
 
Private Sub proc_704(v As Variant, l As Long) ' +704
    Dim ebp1c() As Variant
    Dim ebp14   As Long
    Dim esi     As Long
    
    ReDim ebp1c(1 To 1)
    
    For ebp14 = 1 To l
        
        If v(ebp14) <> 0 Then
            
            esi = esi + 1
            
            ReDim Preserve ebp1c(1 To esi)
            
            ebp1c(esi) = v(ebp14)
            
        End If
        
    Next
    
    v = ebp1c()
    l = esi
    
End Sub
 
Private Function proc_710(arr() As Long) As Long
    Dim i As Integer
    
    ReDim arr(1 To 5, 1 To 2)
    
    For i = 0 To 4
        
        arr(i + 1, 1) = CLng(CDbl(Text1(i).Text))
        arr(i + 1, 2) = CLng(CDbl(Text2(i).Text))
        
    Next
    
    proc_710 = 5
    
End Function
Используемый инструмент - OllyDbg.
Миниатюры
Как узнать исходный код файла-ЕХЕ  для Visual Basic 6.0?  
Вложения
Тип файла: rar Decompiling.rar (20.3 Кб, 107 просмотров)
2
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
23.09.2015, 18:59
The trick, замечательно!

Ради чистоты эксперимента выкладываю оригинальный (еще не "доведенный до ума") код именно этой программы
Visual Basic
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
Option Explicit
Private Type typeBrd
    LenB As Long
    CntB As Long
End Type
 
Private Sub Command1_Click()
     Dim arr(), res, ArrB() As typeBrd, k As Long, dL As Long, t0 As Long, tL As Long, st As String
     Dim n As Long, i As Long, j As Long, LB As Long, sum As Long, s As String ', x As Long
     Call GetData(ArrB(), n)
     LB = Val(Text3.Text): List1.Clear: Label2.Visible = True: txtRes.Text = "": txtRes1.Text = "": Command1.Enabled = False: DoEvents
     ReDim arr(1 To 1)
     For i = 1 To n
         For j = 1 To ArrB(i).CntB
            k = k + 1
            ReDim Preserve arr(1 To k): arr(k) = ArrB(i).LenB ' Переписываем длины в одномерный массив чтобы скормить функции
         Next j
     Next i
m:   Do
       sum = 0: s = ""
       Call compRes(arr, k)
       res = LongSumEl(arr(), LB, dL)
       If VarType(res) = 8195 Then 'Если функция вернула массив, то
          For i = LBound(res) To UBound(res)
               If res(i) <> 0 Then
                   s = s & res(i) & "   ": sum = sum + res(i)
                   For j = 1 To k 'Убираем из массива использованные элементы
                        If res(i) = arr(j) Then res(i) = 0: arr(j) = 0  '
                   Next j
               End If
          Next i
          Label2.Caption = Val(k / 100): DoEvents
          If sum = 0 Then GoTo m1
          st = st & tL + 1 & "." & vbTab & s & "   Отходы  " & LB - sum & vbCrLf
          t0 = t0 + (LB - sum): tL = tL + 1
       Else
          If sumRes(arr, k) < LB And res <> LB Then
            For j = 1 To k
                  If arr(j) <> 0 Then s = s & arr(j) & "   ": arr(j) = 0
            Next j
            st = st & tL + 1 & "." & vbTab & s & "   Отходы  " & res & vbCrLf
            t0 = t0 + Val(res): tL = tL + 1
            GoTo m1
          End If
          Exit Do
       End If
    Loop
    
    If dL <= maxL(ArrB(), n) Then dL = dL + 5: GoTo m
m1:
    'Вывод результата
     On Error Resume Next
    List1.AddItem " "
    List1.AddItem "Всего потребуется досок " & tL
    List1.AddItem "Отходы (всего ) " & t0
    List1.AddItem "Отходы (доски, шт) " & Round(t0 / LB, 2)
    List1.AddItem "Отходы (всего, %) " & Round(((t0 / LB) / tL) * 100, 2)
    txtRes.Text = st
    Label2.Visible = False: Command1.Enabled = True: DoEvents
    txtRes1.Text = compStr(st)
    'MsgBox "Всего потребуется досок " & tL & vbCrLf & "Отходы (всего, м) " & t0 & _
             vbCrLf & "Отходы (доски, шт) " & Round(t0 / LB, 2) & _
             vbCrLf & "Отходы (всего, %) " & Round(((t0 / LB) / tL) * 100, 2)
End Sub
Private Function compStr(s As String) As String
    Dim st, i As Long, j As Long, n As Long, tmp1 As String, tmp2 As String, k As Long
    st = Split(s, vbCrLf): n = UBound(st)
    tmp1 = Split(st(0), vbTab)(1)
    k = 1
    For i = 1 To n
        If st(i) <> "" Then
         tmp2 = Split(st(i), vbTab)(1)
         If tmp1 = tmp2 Then
             k = k + 1
         Else
             compStr = compStr & k & " раз " & vbTab & tmp1 & vbCrLf
             k = 1
             If st(i) <> "" Then tmp1 = Split(st(i), vbTab)(1)
         End If
        End If
    Next i
    compStr = compStr & k & " раз " & vbTab & tmp1 & vbCrLf
End Function
Private Sub compRes(res, n As Long)
    Dim a() As Variant, i As Long, k As Long
    ReDim a(1 To 1)
    For i = 1 To n
        If res(i) <> 0 Then k = k + 1: ReDim Preserve a(1 To k): a(k) = res(i)
    Next i
    res = a: n = k
End Sub
Private Function sumRes(a(), n As Long) As Long
    Dim i As Long
    For i = 1 To n
        sumRes = sumRes + a(i)
    Next i
End Function
Private Function maxL(ArrB() As typeBrd, n) As Long
    Dim i As Long: maxL = ArrB(1).LenB
    For i = 1 To n
        If ArrB(i).LenB > maxL And ArrB(i).CntB > 0 Then maxL = ArrB(i).LenB
    Next i
End Function
Private Sub GetData(ArrB() As typeBrd, n As Long)
     n = 5
     ReDim ArrB(1 To n)
     Dim i As Long
     For i = 1 To n
         ArrB(i).LenB = Val(Text1(i - 1).Text)
         ArrB(i).CntB = Val(Text2(i - 1).Text)
     Next i
End Sub
 
'Функция не моя(не SoftIce), нашел на просторах интернета
Function LongSumEl(arr(), sm As Long, Optional ds As Long = 0)
 
    Dim out&(), i&, j&, k&, n&, L&, sm1&
    
    n = sm ' + ds 'вот здесь я поправил
    sm1 = sm - ds
    
    If n > 80000000 Or n < 0 Then Exit Function
    ReDim a&(n)
    
    For i = 1 To n: a(i) = -1: Next i
    For i = 1 To UBound(arr)
        For j = n - arr(i) To 0 Step -1
            If a(j) >= 0 Then
                k = j + arr(i)
                If a(k) = -1 Then a(k) = j
                If k >= sm1 Then
                    Do
                        L = L + 1
                        ReDim Preserve out&(1 To L)
                        out(L) = k - a(k)
                        k = a(k)
                    Loop While k
                    LongSumEl = out
                    Exit Function
                End If
            End If
    Next j, i
    For i = sm To 1 Step -1
        If a(i) >= 0 Then Exit For
    Next i
    LongSumEl = sm - i
End Function
2
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
23.09.2015, 20:22
Цитата Сообщение от The trick Посмотреть сообщение
Как и обещал, форма
Фантастика! Как тебе удалось не запутаться во всех этих безликих переменных вида ebpXX?
Интересно, а вот если бы та же задача только с нуля, ну видя исключительно интерфейс программы SoftIce, быстрее бы написал, или всё же восстановить быстрее?
2
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
23.09.2015, 20:55
Лучший ответ Сообщение было отмечено Willi2001 как решение

Решение

Фантастика! Как тебе удалось не запутаться во всех этих безликих переменных вида ebpXX?
Исходя из их использования + опыт.
Интересно, а вот если бы та же задача только с нуля, ну видя исключительно интерфейс программы SoftIce, быстрее бы написал, или всё же восстановить быстрее?
Даже не вникал в смысл программы, насколько я понял она считает количество нужных досок исходя из заготовки и нужных размеров. Если так то думаю с нуля я бы быстрее написал, т.к. алгоритм и так понятен.
2
Заблокирован
24.09.2015, 21:11  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Как и обещал, форма
The trick! Грандиозно!! Поздравляю с победой!!!

Добавлено через 21 час 23 минуты
Цитата Сообщение от Willi2001 Посмотреть сообщение
Дело в другом. Кругом препоны, ниже. Угадайте Код? Может ли VB помочь? Клин клином вышибают.
Не волнуйтесь, знания попадают в хорошие руки. Если проявить настойчивость — дать подзатыльник "Enigma Protector", используя ассемблер, то сразу узнаю исходный код на активацию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2015, 21:11
Помогаю со студенческими работами здесь

Как узнать исходный код программы?
Есть файл с простой программой, мне надо узнать его исходный код. как это сделать?

Как узнать исходный код программы?
Я не смог найти подобного ответа на форуме, поэтому спрашиваю здесь. Как открыть файл.ехе, не в том смысле, чтоб запустить файл, а в том,...

Как узнать исходный код страницы
Как узнать исходный код страницы php если она показывается в формате html??? Пожалуйста помогите узнать как это мои контакты...

Как узнать исходный код скомпилированного класса?
Это вообще возможно и если да, то как это делается? Спасибо.

Как извлечь код программы из ехе файла?
кто знает как извлечь код програми с ехе файла?? это возможно зделать?


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru