Pull to refresh

Comments 14

Проблема в компиляции? Пробовали собранную программу переносить? Или нюансы разных консолей?

Если проблема в компиляции - пробовали сделать декомпиляцию с последующим сравнением?

Да, я пробовал переносить скомпилированную на ноутбуке программу на ПК и там бага не было, а потом пробовал ту что компилировал на ПК перенести на ноут и там баг проявлялся. Поэтому и решил что проблема не в компиляции. В обоих случаях размер программы после компиляции совпадал вплоть до байта.

А если подключить USB клавиатуру к ноутбуку? Может контроллер клавиатуры в нотбуке немного нестандартный?

Минуточку, у вас же чёрным по белому в коде (162-я строка):
Console.Write("a");
Ну а то, что оно не везде проявляется - это может быть с разными таймингами и разным временем реакции связано. У меня не воспроизводится, но если я сделаю вот так Console.Write("aaa"); то вот они ваши ааа без первой буквы

Дальше лень разбираться, если честно. Я обычно говорю "чудес на свете не бывает, в компьютере только биты да байты, и любому наблюдаемому феномену обычно есть рациональное объяснение, а всё остальное можно списать на космическое излучение - прилетает высокоэнергетическая частица и вот - получите "а" в консоли ;).

Мой косяк что оставил это после своих экспериментов. Но именно этот символ "а" ни на что не влияет, и тем более что в исходном (изначальном) коде никакого символа "а" не было вообще. Тайминги думаю не причем, не настолько сложная программа, хотя я и сам было подумывал про что-то подобное. Вообще очень похоже что проблема повторяется именно на том рабочем ноуте HP Windows 7 x64.

PS три буквы а делал тоже кстати, но они показываются сразу, а потом прибавлялась еще одна четвертая уже справа от тех трех

Стал думать, что проблема в версии компилятора, но обменяв экзешники с ноута и с компа, я увидел что на ноуте баг есть, а на компе нет.
Короче, как я понимаю проблема именно в ноуте, и возможно именно конкретный ноутбук (но это нужно еще проверить).

Есть такая либа .NET Framework. Она устанавливается со средой разработки или самостоятельно.
Её версии на компе и на ноуте проверить не пробовали? Т.к. ваша приложуха работает под её посредством.

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

Если на виртуальной машине на ноутбуке такой баг есть, я бы проверил драйвера видеокарты, ну винду переставил как вариант. Ради змейки :)

У вас батник занимается тем, что вызывает csc.exe, входящий в .NET Framework. Framework у вас либо шёл в комплекте с системой, либо был установлен вместе с каким-то софтом, причём с каждой версией фреймворка идёт свой компилятор. Если зайти в папку с фреймворками, там для каждой версии своя папка, в каждой есть компиляторы для C# и VB.NET.

Как его использовать руками из командной строки можно почитать вот тут, например:

https://docs.microsoft.com/en-us/previous-versions/ms379563(v=vs.80)

Чтобы оно работало, нужно либо каждый раз прописывать полностью путь до компилятора нужной версии, либо добавить его папку в системную переменную PATH.

https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14)

Кроме того, в Notepad++ можно руками добавить csc.exe для компиляции, правда сами авторы рекомендуют использовать бат-файл.

https://community.notepad-plus-plus.org/topic/20688/faq-desk-how-do-i-use-notepad-to-compile-my-source-code-or-convert-my-text

декомпилируйте 2 версии, с баком и без бага и сравните 2 кода.

Не знаю как в винде, но обычно у всех терминалов можно включать или выключать режим эхо. Этот режим указывает, будет ли терминал сразу же выводить на экран символ введённый с клавиатуры.

Sign up to leave a comment.

Articles