powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите с msil
6 сообщений из 6, страница 1 из 1
Помогите с msil
    #39532735
FreeBard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой код в сборке

Код: c#
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.
  .method public hidebysig specialname instance class Class1072 
          get_License() cil managed
  {
    // РǬƠ ʮĠ:       70 (0x46)
    .maxstack  2
    .locals init (valuetype [mscorlib]System.DateTime V_0)
	
	
    IL_0000:  ldarg.0
    IL_0001:  br.s       IL_0008

    IL_0003:  brfalse.s  IL_0039

    IL_0005:  ldarg.0
    IL_0006:  br.s       IL_000f

    IL_0008:  ldfld      class Class1072 Class1073::m_license
    IL_000d:  br.s       IL_0003

    IL_000f:  ldflda     valuetype [mscorlib]System.DateTime Class1073::m_licenseLastUpdateTime

    IL_0014:  br.s       IL_0030

    IL_0016:  call       valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now()
    IL_001b:  br.s       IL_0026

    IL_001d:  ldloca.s   V_0
    IL_001f:  call       instance valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Date()
    IL_0024:  br.s       IL_0029
    ...



Хочу увеличить дату(поле типа DateTime) Class1073::m_licenseLastUpdateTime, добавляю код(выделил красным), нормально собирается ilasm,
но при выполнении выбрасывает с исключением, произошла ошибка и тд..
Скорее всего что то не со стеком, подскажите как сделать правильно

.method public hidebysig specialname instance class Class1072
get_License() cil managed
{
// РǬƠ ʮĠ: 70 (0x46)
.maxstack 2
.locals init (valuetype [mscorlib]System.DateTime V_0)

IL_0000: ldarg.0
IL_0001: br.s IL_0008

IL_0003: brfalse.s IL_0039

IL_0005: ldarg.0
IL_0006: br.s IL_000f

IL_0008: ldfld class Class1072 Class1073::m_license
IL_000d: br.s IL_0003

IL_000f: ldflda valuetype [mscorlib]System.DateTime Class1073::m_licenseLastUpdateTime
IL_00057: ldc.r8 10000
IL_00058: call instance valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::AddDays(float64)
IL_00059: stfld valuetype [mscorlib]System.DateTime Class1073::m_licenseLastUpdateTime
IL_0014: br.s IL_0030

IL_0016: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now()
IL_001b: br.s IL_0026

IL_001d: ldloca.s V_0
IL_001f: call instance valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Date()
IL_0024: br.s IL_0029
...
...
Рейтинг: 0 / 0
Помогите с msil
    #39532744
FreeBard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного подумал и добавил очистку стека и загрузку нового значения поля m_licenseLastUpdateTime
но все равно не работает

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    IL_000f:  ldflda     valuetype [mscorlib]System.DateTime Class1073::m_licenseLastUpdateTime
    IL_00057: ldc.r8 10000
	IL_00058: call instance valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::AddDays(float64)
    IL_00059: stfld valuetype [mscorlib]System.DateTime Class1073::m_licenseLastUpdateTime	
        pop
	pop
	pop
	ldflda     valuetype [mscorlib]System.DateTime Class1073::m_licenseLastUpdateTime
...
Рейтинг: 0 / 0
Помогите с msil
    #39533298
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть смысл увеличивать дату апдейта?

Я бы поискал это
class Class1072 Class1073::m_license

и посмотрел что там проверяется.
В большинстве случаев там стоит какое-то вычитание и сравнение с целым, напримре 14 или 30 и т.д.. вот его ставим один раз в 30000, это намного проще, и больше не колбасимся
...
Рейтинг: 0 / 0
Помогите с msil
    #39533303
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще бы проанализировал, возможно в этом же методе что-то можно исправить
...
Рейтинг: 0 / 0
Помогите с msil
    #39533305
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему дизассембировано в MSIL, а не c# ?
...
Рейтинг: 0 / 0
Помогите с msil
    #39533311
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите весь код метода get_License()
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите с msil
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]