Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2014, 18:45   #1
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию БлокСхемник 0.8

Есть такая программка для построения блок-схем Си++ и Паскаль - БлокСхемник 0.8: http://programmir.far.ru/ (раздел Basic).

Программа простая и в тоже время удобная. Но вот только блоки ввода/вывода она не строит, хотя это, судя по всему, предусмотрено, есть файлы VV-pas.txt и VV-cpp.txt, в которых содержится перечень инструкций ввода-вывода. Но программа не видит эти файлы. При нажатии кнопки "Ввод/вывод" получаем ошибку:

1.jpg

Хотелось бы исправить ситуацию. Сама программа написана на Visual Basic, нагуглил декомпилятор VB Decompiler Lite v9.7 (правда без регистрации функции его весьма урезаны), вот код обработчика нажатия по этой кнопки:

Код:
Private Function btnTransOpers_Click(sender, str_191) '406B40
  Code: TinyFormat
  Start: 406B41
  Size: 53

  loc_406B41: ldarg.0
  loc_406B42: ldfld FileTransFuns
  loc_406B47: call Exists
  loc_406B4C: brfalse.sbrnull.sbrzero.s loc_406B5C
  loc_406B4E: ldarg.0
  loc_406B4F: ldfld FileTransFuns
  loc_406B54: call Start
  loc_406B59: pop
  loc_406B5A: br.s loc_406B75
  loc_406B5C: ' Referenced from: 406B4C
  loc_406B5C: ldstr "Файл не найден: " (40CA9A)
  loc_406B61: ldarg.0
  loc_406B62: ldfld FileTransFuns
  loc_406B67: call Concat
  loc_406B6C: ldc.i4.s 48
  loc_406B6E: ldnull
  loc_406B6F: call MsgBox
  loc_406B74: pop
  loc_406B75: ' Referenced from: 406B5A
  loc_406B75: ret

End Function
Видим, что имя файла содержится в поле FileTransFuns, но это поле оказывается пустым, то есть если бы там хоть что-то было, то в сообщении об ошибки, что показано на скриншоте выше, выводилось бы его значение, но оно пусто.

WinHex'ом нашел, где хранятся имена файлов:

2.jpg

То есть имя файла формируется динамически. Как именно формируется поле FileTransFuns я не нашел, видимо, из-за ограничений демо-версии декомпилятора, он не показывает код. А ошибка кроется где-то там.

Есть ли у кого желание доковырять эту программу и починить ее?

Последний раз редактировалось Arigato; 09.06.2014 в 18:49.
Arigato вне форума Ответить с цитированием
Старый 10.06.2014, 11:03   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Попробуйте какой-нибудь другой .NET декомпилятор: Reflector (триал), DotPeek (бесплатный). Они даже в C# код отдать могут вместо VB.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск