dll на C: удивительная ошибка...

Страницы: 1 2 След.
RSS
dll на C: удивительная ошибка...
 
На основе w32.dll сделал на C маленькую mydll.dll для проигрывания звуков MessageBeep и mciSendString. Она работала, но через некоторое время перестала и при запуске соотв. Lua скрипта выдавалось сообщение "C stack overflow". Я 2 дня по-разному менял код, но это сообщение оставалось. Похоже, что эта ошибка стала появляться после очередного обновления Квика, т.к. кроме этого всё оставалось тем же со времени, когда mydll.dll работала. Остальные мои аналогичные dll продолжают работать. Только что методом тыка я поменял имя dll с mydll.c на такое же моё имя, что работает: на luacdll.c (luacdll.dll). И эта dll стала работать. От одного только переименования файла!

Как это можно объяснить??
 
Забыл добавить, что внутри luacdll.c и mydll.lua я везде "mydll" тоже поменял на "luacdll".
 
У меня на диске валялся другой (старый, вер 8.9) Квик (от банка РСХБ), которым я не пользовался, я в него залогинился, он обновился, но почему-то не до 11-й, а до 10-й версии. Я в нём проверил эту dll, и в нём повторилось то же самое: mydll.dll вызывала "C stack overflow", а такая же luacdll.dll работала. Поэтому версия, что дело тут в обновлении Квика, сомнительная...
 
Хм, может быть, тут дело в gcc.exe? Кому не нравится имя mydll.dll??
 
Цитата
Serge123 написал:
Хм, может быть, тут дело в gcc.exe? Кому не нравится имя mydll.dll??
В сообщение же сказано, что переполняется стек функции. Можно лишь гадать почему.
Но как правило, либо Вы передаете функции очень большой объем параметров, либо утечка памяти, т е некорректный выход из стека какой-то функции.
------------------
Если пишите на си, то используйте функции библиотеки СИ, а не w32.dll  (это самопальная dll верно?)  возможно ошибка исчезнет.
В любом случае это ошибка а сишных самопальных dll
 
Так я же написал, что наличие или отсутствие ошибки "C stack overflow" определяется исключительно именем dll: если назвать её mydll.dll, то эта ошибка возникает, а если назвать её, скажем, luacdll.dll, то она работает и выдаёт звуки.
Могу закачать исходники, если кому интересно проверить у себя, но там надо транслировать через gcc.exe:
gcc.exe mydll.c -o mydll.dll -mdll -O2 -s -L. -llua54 -m64 -std=c17
 
Сегодня скачал с сервера брокера Квик, установил его и одовил до посленей версии, переписал dat, ihi, wnd файлы и файлы с ключами из того, что было, попробовал этот пример, о котором писал здесь в 1-м сообщении - всё повторилось то же самое с ошибкой при имени mydll.dll и отсутствии ошибок при luacdll.dll.

Я сравнил содержимое exe и dll файлов новой копии Квика и той, на которой работал ещё в черверг, - они не отличаются. Поэтому непонятно, отчего у меня в выпадающих меню иногда рисовались левые иконки...
 
Пардон, свет от лампы на клавиатуру падает, не туда нажимаю. Вместо
"одовил до посленей версии, переписал dat, ihi"
должно было быть
"обновил до посленей версии, переписал dat, ini".
 
Вернее, лампа стоит сзади и тень от головы и от рук на клавиатуру падает...
 
Кстати, после ошибки "C stack overflow" опять иногда в выпадающих меню стали возникать посторонние иконки.

Методом тыка выяснил, что, если перед переименованием и перекомпиляцией моей dll, выйти из Квика, а после переделки моих программ опять в него войти, то ошибка "C stack overflow" не возникает при переименовании dll на те имена, когда эта ошибка возникала раньше, когда я при этом из Квика не выходил.

Т.е. получается, что если запустить мой скрипт с dll, а потом при запущенном Квике переименовать эту dll и изменить это имя в луа скрипте, то при запуске этого скрипта возникает ошибка "C stack overflow". И потом даже если перезапустить Квик, эта ошибка всё равно возникает, пока из него не выйдешь и не переименуешь dll, тогда эта dll под другим именем уже работает. Похоже, dll, загруженная моим скриптом, после его завершения, остаётся в памяти процесса Квика и это вызывает ошибку при повторном старте этого скрипта, который вызывает аналогичную dll с другим именем. Да ещё иконки иногда начинают меняться также при последующих сеансах работы Квика. О такой маразматической ошибке Квика мне бы и в кошмарном сне не приснилось...
 
Сейчас вышел из Квика, подождал, опять вошёл и сразу же в меню "Сервисы" увидел левую иконку напротив "Скрипты" (см. аттач). А с час назад я видел напротив "Скрипты" другую левую иконку: с буквой i (как в окне с информацией). И это на том Квике, который я сегодня вечером скачал и установил!

Кто-то может объяснить эти особенности этой чудесной программы? Там в Квике юзерам молоко за вредность дают?  :what:  
 
Да, и как раньше: стОит закрыть это меню с левой (левыми) иконкой и опять открыть, "ан демонов-то и нету!" (С)
Прямо, как в песнях от Ларисы Мондрус и Нины Бродской: "Вот она была и нету!!!" (С)
https://www.youtube.com/watch?v=szaIkbW0tH8
https://www.youtube.com/watch?v=wnvFAE3RFLw
 
Попробую удалить файл tmsg.dat, куда зачем-то записываются имена скриптов и текст ошибок ("C stack overflow"), может, после этого перестанут появляться эти дурацкие иконки...
 
Выхожу из Квика, удаляю tmsg.dat, запускаю Квик, запускаю свой скрипт: работает, выдает звук. При следующих запусках этого скрипта возникает "C stack oferflow"... Кстати, в этом меню видел уже другую левую иконку на другом месте (см. аттач).
 
А сейчас что бы я ни делал, 1-й раз после запуска Квика мой скрипт отрабатывает (есть звук), а при последующих вызовах "C stack overflow". Но стоит в скрипте вместо моей dll вставить require("w32") и всё работает, хоть 10 раз вызывай звук - всё нормально! Причём, каких-то принципиальных отличий в моём исходнике С от luaw32.c от swerg нет! :shock:  
 
Похоже, нашёл причину (но могут быть и другие): если моя dll имеет, к примеру, имя aaa.dll (тогда в скрипте, который её использует, будет require('aaa')) и если интерпретатор lua найдёт в папках из global variable LUA_PATH или из environment variable LUA_PATH файл aaa.lua, то интерпретатор загрузит его вместо aaa.dll, отсюда, видимо, и возникает "C stack overflow". А я давал этой dll и скрипту одинаковое имя!  :sad: Тогда, получается, выполняя этот require, интерпретптор не загружал ничего или повторно загружал мой скрипт типа aaa.lua?  https://www.lua.org/pil/8.1.html

Почему же в require нельзя задавать расширение файла, чтобы не было путаницы? :what:  
 
Вроде бы разобрался: в 1-й строчке скрипта надо было правильно записать package.cpath = ...
 
МенЯ продолжают преследовать эти иконки... Сегодня я не запускал этот скрипт с длл, сейчас только захотел закрыть Квик и в некоторых выпадающих меню обнаружил подобную картинку, как в аттаче. Это повторилось раза 3-4 подряд, но я не могу через клавишу PrtScr запиасть несколько копий экранов... В этих меню Квика слева от каждого пункта встречалась также иконка в виде барашка от SoftPerfect RAM Disk, который сидит в трее.

И это в недавно скачанной версии Квика... У меня только одно предположение: возможно, как-то подпорчен wnd файл, который сегодня был загружен в Квик. Но я с этим файлом сегодня торговал...
 
Цитата
Serge123 написал:
МенЯ продолжают преследовать эти иконки... Сегодня я не запускал этот скрипт с длл, сейчас только захотел закрыть Квик и в некоторых выпадающих меню обнаружил подобную картинку, как в аттаче. Это повторилось раза 3-4 подряд, но я не могу через клавишу PrtScr запиасть несколько копий экранов... В этих меню Квика слева от каждого пункта встречалась также иконка в виде барашка от SoftPerfect RAM Disk, который сидит в трее.

И это в недавно скачанной версии Квика... У меня только одно предположение: возможно, как-то подпорчен wnd файл, который сегодня был загружен в Квик. Но я с этим файлом сегодня торговал...
Рекомендую все ваше выкинуть  из квика и понаблюдать  за появлением чего-то где-то.
Потом расскажите результат.
 
Да, я уже подумывал так сделать... У меня тут за дисплеем валяется ещё один китайский мини ПК, но уже 6-ядерный, я хотел на него установить Квик, но тогда придётся переключать туда-сюда эзернет провод от модема и от дисплея... Я не смог сделать так, чтобы он получал Интернет от модема через вайфай и не смог загрузиться на нём с флэшки, чтобы снять копию диска, из-за ущербности/урезанности его BIOS (при загрузке возникает надпись Evaluation version). Это TopTon Computer, и это известная проблема: https://4pda.to/forum/index.php?showtopic=994767&st=160 Если бы не этот дурацкий BIOS, то это был бы замечательный мини-ПК...

Видимо, придётся опять установить Квик на этот же маломощный мини-ПК, на котором работаю сейчас, и опять с нуля делать конфигурацию для wnd файлов...
 
Вот здесь ещё есть его описание: https://habr.com/ru/articles/694440/
На моём топтоне, в отличие от этой статьи, насколько я помню, в BIOS нет меню Advanced.
 
Цитата
Serge123 написал:
Да, я уже подумывал так сделать... У меня тут за дисплеем валяется ещё один китайский мини ПК, но уже 6-ядерный, я хотел на него установить Квик, но тогда придётся переключать туда-сюда эзернет провод от модема и от дисплея... Я не смог сделать так, чтобы он получал Интернет от модема через вайфай и не смог загрузиться на нём с флэшки, чтобы снять копию диска, из-за ущербности/урезанности его BIOS (при загрузке возникает надпись Evaluation version). Это TopTon Computer, и это известная проблема:  https://4pda.to/forum/index.php?showtopic=994767&st=160  Если бы не этот дурацкий BIOS, то это был бы замечательный мини-ПК...

Видимо, придётся опять установить Квик на этот же маломощный мини-ПК, на котором работаю сейчас, и опять с нуля делать конфигурацию для wnd файлов...
Квиков на один комп можете поставить сколько угодно.
И поработайте 1 день на чистом квике  без ваших скриптов.
Если есть другой брокер то можете на одном компе подключить два квика к разным брокерам.
------------------------
Второму компу можно по  ehernet  (кабелю) дать интернет от этого компа.
 
Цитата
Serge123 написал:
Вот здесь ещё есть его описание:  https://habr.com/ru/articles/694440/
На моём топтоне, в отличие от этой статьи, насколько я помню, в BIOS нет меню Advanced.
по вашей ссылке чел пишет:
S200 - из замеченного - при подключении USB-хаба (любого) и втыкании в него флэшки переставала работать беспроводная мышь с адаптером воткнутым в корпусной USB.  Пришлось воспользоваться USB-хабом подключаемым к порту USB-C. В таком виде - полет нормальный.
 
Я USB-хабом не пользовался... Это, видимо, расширитель для USB, чтобы подключать больше USB устройств?
Не хватало мне ещё что-то докупать в связи с этой проблемой. Насколько я понял, она возникает по причине того, что при попытке загрузиться с флэшки BIOS не загружает (не знаю откуда) драйвер для работы с флэшкой. Максимум, что я видел при многочисленных попытках загрузить Акронис с флэшки, - это первоначальная заставка программы, которая как-то всё-таки читается с флэшки, и потом всё мертво.

А вот на моём рабочем маломощном мини ПК BIOS с разблокированными доп. функциями: можно, напр., запретить какой-то порт SATA. Это очень удобно, если есть два загрузочных диска и хочется, чтобы при загрузке с одного из них другого не было видно.

Помню, я как-то нарвался на неприятную особенность вин10: стоял на ПК загрузочный диск с вин7, я к нему подключил ещё один диск и установил на него вин10. И эта вин10 без спросу полезла на диск с вин7 и сделала так, что с него уже нельзя было загрузиться, а можно было загрузить с него вин7 только через меню выбора ОСдля загрузки при загрузке с диска с вин10. Если убрать диск с вин10, то загрузка с диска с вин7 стала невозможна. Причём, никаким ковырянием настроек вин10 нельзя было это отменить и вернуть загрузку с диска с вин7!!!

Я хотел найти в Интернете ответ на вопрос: что будет, если на ПК стоит загрузочный диск с вин10 и я подкючу к нему ещё загрузочный диск с вин10: не получится та же история, как и с вин7? Ответа я не нашёл. Может, здесь кто-то знает ответ?

Я сколько-то лет назад делал такой фокус: ретранслировал и исправлял mbr загрузчик в 1-м секторе диска и добавлял к нему маленькое меню: с какого диска грузиться, с 1-го или со 2-го? Мой фрагмент кода обрабатывал нажатие клавиши через BIOS и в mbr секторе на диске, с которого не грузимся, исправлял байт в таблице разделов, чтобы он выглядел, как неразмеченная область диска, чтобы виндовс туда не лезла. Но не хочется вспоминать всё это дело, да и у этого Topton диск размечен как GPT, а с GPT я не умею делать такой фокус...
 
Цитата
Serge123 написал:
Я USB-хабом не пользовался... Это, видимо, расширитель для USB, чтобы подключать больше USB устройств?
Не хватало мне ещё что-то докупать в связи с этой проблемой. Насколько я понял, она возникает по причине того, что при попытке загрузиться с флэшки BIOS не загружает (не знаю откуда) драйвер для работы с флэшкой. Максимум, что я видел при многочисленных попытках загрузить Акронис с флэшки, - это первоначальная заставка программы, которая как-то всё-таки читается с флэшки, и потом всё мертво.

А вот на моём рабочем маломощном мини ПК BIOS с разблокированными доп. функциями: можно, напр., запретить какой-то порт SATA. Это очень удобно, если есть два загрузочных диска и хочется, чтобы при загрузке с одного из них другого не было видно.

Помню, я как-то нарвался на неприятную особенность вин10: стоял на ПК загрузочный диск с вин7, я к нему подключил ещё один диск и установил на него вин10. И эта вин10 без спросу полезла на диск с вин7 и сделала так, что с него уже нельзя было загрузиться, а можно было загрузить с него вин7 только через меню выбора ОСдля загрузки при загрузке с диска с вин10. Если убрать диск с вин10, то загрузка с диска с вин7 стала невозможна. Причём, никаким ковырянием настроек вин10 нельзя было это отменить и вернуть загрузку с диска с вин7!!!

Я хотел найти в Интернете ответ на вопрос: что будет, если на ПК стоит загрузочный диск с вин10 и я подкючу к нему ещё загрузочный диск с вин10: не получится та же история, как и с вин7? Ответа я не нашёл. Может, здесь кто-то знает ответ?

Я сколько-то лет назад делал такой фокус: ретранслировал и исправлял mbr загрузчик в 1-м секторе диска и добавлял к нему маленькое меню: с какого диска грузиться, с 1-го или со 2-го? Мой фрагмент кода обрабатывал нажатие клавиши через BIOS и в mbr секторе на диске, с которого не грузимся, исправлял байт в таблице разделов, чтобы он выглядел, как неразмеченная область диска, чтобы виндовс туда не лезла. Но не хочется вспоминать всё это дело, да и у этого Topton диск размечен как GPT, а с GPT я не умею делать такой фокус...
Возможно знаете, но сейчас win10 можно ставить без проблем с сайта майкрософт.
---------------------------------
Я не встречался с проблемой невозможности загрузки с флешки.
--------------------
Ставил не мало, но такой проблемы не было.
----------------
Можно подключить второй комп к первому и сбросить загрузочный файл винды  
---------------------------
В крайнем случае можно через UART порт перебросить. Если нет физического можно через виртуальный.
------------------------
Можно повесить второй винт.
-------------------------------------
Как говорят, хочешь решить проблему - делаешь, не хочешь - придумываешь причину почему.
 
Serge123,
Вы же за скорость радеете, почему тогда используете тёмную тему? Известно, что она тормозит. Глядишь, без неё и баги с иконками уйдут.

Я предполагаю, что проблема с иконками имеет ту же природу, что мой репорт про работу меню в английской версии. Однако у меня на русской версии и стандартной теме при многих загруженных dll никаких заметных проблем с иконками нет.
 
За скорость радею, но за зрение радею ещё больше. :-) Первый раз слышу, что тёмная тема тормозит, это совершенно не логично...

Левые иконки стали появляться после зависания Квика, которые вызывала моя длл. Эти иконки появляются, когда работает мой скрипт чисто на Луа, без загрузки посторонних модулей. Он и до появления левых иконок работал.

Если рассуждать логически, то как могут возникнуть левые иконки в меню? Меню рисует Виндовс, содержимое меню сидит в ресурсах ехе файла. Но почему, если закрыть меню и сразу открыть, то Виндовс эти иконки уже не рисует? И почему они также рисуются слева от пунктов меню, для которых иконки не предусмотрены? Это загадка...
 
Опа, только что я хотел похвастаться, что опять переустановил Квик и долгле время не вижу левых иконок, как опять появилось (см. аттач). Причём, после переустановки Квика я скриптов не запускал. Я установил Квик, обновил его, начал настраивать, т.к. свои wnd файлы я из его папки убрал, записал только в его папку папку с ключами и текстовый файл INFO.ini, чтобы меньше настраивать Квик. Этот файл выглядит целым.

Но на картинке уже не иконка, а кусок изображения курсора Виндовс (виден бублик у кусочек от стрелки). Помню, что я уже видел такую картинку на том же пункте того же выпадающего меню.

Какие будут предположения? Что-то испортилось на диске в файле Виндовс, сбоит ОЗУ? Проблема в этой самой тёмной теме (но почему только у меня?), вмешательство барабашки, инопланетян? При этом Квик работает. С такой головоломкой я ещё не сталкивался...
 
Вернее сказать, очень давно, то ли в Win98, то ли в Win XP я наблюдал такую картинку, когда Виндовс не хватало памяти в ОЗУ: на рабочем столе вместо некоторых иконок рисовались кусочки каких-то изображений. Сейчас диспетчер показывает, что занято 44% ОЗУ, не так уж и мало.
 
Под конец работы опять показалась та же картинка, но большего размера и в другом пункте того же меню.
 
Цитата
Serge123 написал:
Под конец работы опять показалась та же картинка, но большего размера и в другом пункте того же меню.
Предположу, что у Вас проблема с железом.
Очень похоже на перегрев.
На КВИКЕ Вы это видите, потому что это приложение у Вас активно.
Посмотрите нагрев процессора.
Если давно не чистили комп, то почистите вентилятор процессора.
 
Как я писал, он безвентиляторный, задняя стенка этой ребристой алюм. коробочки служит радиатором для ЦП. Он стоит на боку со снятой задней крышкой, перед ним стоит УСБ вентилятор. Я рукой пробую, если тепло, то включаю вентилятор, приоткрываю окно. Поэтому перегрева и близко нет.
 
Строго говоря, я чувствую, что радиатор чуть тёплый, надо будет посмотреть конкретнее на температуру ЦП. Это, кажется, в BIOS показывают? Нет под рукой утилиты для показа температур.
 
Кстати, идея обратить внимание на температуру не лишена остроумия: я сейчас потрогал рукой корпус, он был просто тёплый, я включил вентилятор и прошёлся по меню: а вдруг опять вылезет вчерашняя картинка? И она таки вылезла...

Ввиду китайскости этого ПК и того факта, что он работает с 2016 г., можно сделать вывод, что в нём что-то постепенно дохнет...
Но всё-таки логика появления картинок только в Квике и только в выпадающих меню непонятна... Хочется увидеть эти иконки также и в других программках.
 
Вот пара новых примеров, которые случились подряд, радиатор у ПК почти холодный.
Если сбоит память, то почему ни разу не было ошибок в работе программы, не говоря уже о вылетах по защите памяти? Исключительно то лишние свои, то посторонние иконки...
 
Цитата
Serge123 написал:
Вот пара новых примеров, которые случились подряд, радиатор у ПК почти холодный.
Если сбоит память, то почему ни разу не было ошибок в работе программы, не говоря уже о вылетах по защите памяти? Исключительно то лишние свои, то посторонние иконки...
Предположу что ошибки могут быть связаны с ошибками памяти.
Если вы разгоняли память то надо вернуть в биосе дефолтные установки.
--------------------------
Надо бы ее проверить
 
Не разгонял, но надо будет её проверить...
 
Цитата
Serge123 написал:
Эти иконки появляются, когда работает мой скрипт чисто на Луа, без загрузки посторонних модулей.
Учитывая Ваши ошибки с cpath и удивлением про именование модулей, я бы не был так уверен, что никаких dll не загружено. Техподдержка в явном виде мне отвечала, что именно такие проблемы могут быть именно от dll, как я и писал выше. Совет заменить тему на менее бажную уже от меня, не от техподдержки. Чисто посмотреть, проявится ли баг.
 
С cpath скорее не ошибка, а просто взял эту строку из чужого скрипта и не разбирался с ней.
ДЛЛ не загружена, потому что нет слова require.
Попробую поставить светлую тему и посмотреть. Там их по-моему всего две: светлая и тёмная...
 
Для исключения dll попробуйте посмотреть через ProcessMonitor (захват должен стартовать до старта квика и продолжаться до проявления бага). QUIK в теории может грузить dll сам, например, при поиске индикаторов (при старте программы или при открытии окна добавления индикатора) или вообще все dll из папки запуска на старте, или ещё из папки, соседней к квику (quik\. .\lib\lua\5.*\).
Но если нигде близко к папке квика Ваших лишних файлов dll нет, то проблема не в загрузке левых dll.
 
Установил стандартную тему, сколько ни ходил по меню, левых иконок не увидел. Опять загрузил тёмную тему и сразу в меню "Система" начал наблюдать левые иконки. Какая связь тёмной темы с левыми иконками, если мой скрипт даже не запущен? И почему я раньше больше года не видел этих левых иконок? Может быть, это связано с обновлением Квика?

Не слышал пока о таких программах, которые загружают все dll, из соседних папок. :-) Зачем Квику при старте загружать, к примеру, DDE2EXCEL_PR.dll? Папки lib у меня нет.
 
Ну я же говорил, глючная тёмная тема)
Создайте отдельный багрепорт без привычного Вам спама сообщениями внутри темы, в духе "поставил новейшую версию, включил тёмную тему, сделал то-то и то-то, получил странные иконки", ТП рано или поздно обратит внимание на тему (чем меньше спама, тем быстрее), запросит архив (м.б. с дампом), если не воспроизведёт самостоятельно. До запроса архива ничего в этой установке квика делать не надо, чтобы не влияло на анализ архива.
 
Судя по картинкам - у вас слабенький комп и не хватает GDI ресурсов.
Тёмная тема в самом деле съедает больше ресурсов, т.к. квку приходится все это великолепие отрисовывать самостоятельно, Windows темные темы рисовать не умеет, а вот светлый интерфейс - Windows рисует сама
 
Цитата
swerg написал:
Судя по картинкам - у вас слабенький комп и не хватает GDI ресурсов.
Да, ЦП i3-5005U, 2.00GHz, TDP 15 Вт, 2 ядра, 4 потока, для ноутбуков, графика Intel HD Graphics 5500. А как можно увидеть, что не хватает GDI ресурсов, и что это за ресурсы? Я вывел окно диспетчера задач поверх остальных, выбираю в Квике курсором меню, вижу лишние иконки, но загрузка ЦП и графики почти нулевая...

А если у ЦП будет больше ядер и графика Intel HD Graphics 6600, это как-то повлияет на появление левых иконок?
 
Я ещё заметил, что эти граф. эффекты начали проявляться недавно, а с тёмной темой я работаю давно. Причём, раньше я после обеда, когда интенсивность торгов меньше, выбирал режим экономии энергии, когда у ЦП тактовая частота ставится 800 МГц вместо 2-х ГГц. И при этом мой скрипт обрабатывал в OnAllTrade и OnQuote сообщения по нескольким тикерам. Сейчас, если снизить частоту ЦП, не только вылазят левые иконки, но и фон на пустых местах окошек может вдруг стать белым вместо тёмного (и таким остаться) даже без работающего скрипта. Такое впечатление, что с какой-то версии Квик начал перерисовавать красивые иконки в тёмной теме 60 раз в сек. При этом диспетчер задач показывает нагрузку на ЦП 3%, а нагрузку на GPU 0-1%.
 
Цитата
Serge123 написал:
Я ещё заметил, что эти граф. эффекты начали проявляться недавно, а с тёмной темой я работаю давно. Причём, раньше я после обеда, когда интенсивность торгов меньше, выбирал режим экономии энергии, когда у ЦП тактовая частота ставится 800 МГц вместо 2-х ГГц. И при этом мой скрипт обрабатывал в OnAllTrade и OnQuote сообщения по нескольким тикерам. Сейчас, если снизить частоту ЦП, не только вылазят левые иконки, но и фон на пустых местах окошек может вдруг стать белым вместо тёмного (и таким остаться) даже без работающего скрипта. Такое впечатление, что с какой-то версии Квик начал перерисовавать красивые иконки в тёмной теме 60 раз в сек. При этом диспетчер задач показывает нагрузку на ЦП 3%, а нагрузку на GPU 0-1%.
проблема в железе.
Можно попробовать следующее.
1) Выгрузить браузер
2) Выгрузить все приложения кроме Квика
3) Установить более низкое разрешение монитора.  
 
Я хренею, дорогая реакция! И проц-то у них перегревается, и не хватает GDI ресурсов, и тёмная тема съедает больше ресурсов, и разрешение монитора велико... я давно говорю, что программисты вымерли, но чтобы до такой степени!

Графика у нас была ещё на ДВК - первый графический дисплей, который я видел, при переходе на Intel 8086/4.77 МГц скорость стала вдвое выше, на 80286 мы сделали уже плавное перемещение фигур, на 80386 всё летало со страшной силой, а 80484/66 МГц впервые увидели в Германии на чемпионате мира, и это была поистине чудовищная скорость! Там же увидели первый Пень на 60 МГц, который работал ещё быстрее. И никаких GDI в природе не существовало, как и Виндов - вся графика написана "вручную". Что до тёмной/светлой темы, так это вообще у нормальных людей программирование данными, которое на скорость или память не влияет вообще никак. O tempora, o mores!
 
Я даже больше скажу: когда я начинал работать на ЭВМ в качестве сменного оператора отд. сбыта, то работал на СМ-2 (клон американской М6000). На ней стояла амер. ОС, кажется, Query 1000, которая могла использовать только 1 куб памяти (64Кб) и там вертелась СУБД Сбыт, написанная на асм, и при этом я запускал свою программку на Фортране 4, которая за каких-нибудь 13 сек. вычисляла 100 знаков числа е после запятой. В то время я ещё не знал о машинных алгоритмах деления и делил длинное число уголком, как человек. 1000 знаков после запятой она считала 13 мин.
А память у неё была на ферритовых колечках, на 1 байт уходило 9 колечек, один бит - контроль по нечётности. Через каждое колечко диаметром в 1/3 мм проходило 3 провода диаметром 0.05 мм, которые продевали в опред. порядке спец. женщины в цехе, который напоминал сборку наручных часов (я не видел, только предполагаю).
Тактовая частота была целых 330 КГц (а может, и все 333), и всё летало, жрала она каких-то там 8 КВт (потому что была малой ЭВМ), ЭВМ была собрана на микросхемах 155-й серии, процессорный блок весил 45 кг, в нём не было даже микросхемы сумматора, а он выполнял вычисления с числами с плавающей запятой. Имел 4 16-разрядных регистра: два оперативных и два индексных (адресных) и 1-разрядные регисты расширения и переполнения.
Я на ней делал такой трюк: в пятницу в конце раб. дня нажимал на морде клавишу Стоп, запоминал на клавишном регистре адрес текущей команды, выключал питание, а в понедельник приходил, включал питание, записывал в рег. текущей команды значение с клав. регистра, нажимал Пуск, и машина продолжала работать, как будто не останавливалась! А сейчас, выключая питание в пятницу, даже нет уверенности, что ПК в след. раз загрузится.
Я на ней писал безошибочные программы на асм, а такого понятия, как отладчик, вообще не существовало. Какая отладка, что за дикость? Надо сразу всё делать правильно, тогда и никакой отладки не надо! Отладка для лохов!

Потом по бартеру с индийцами хим-дым получил ПК PC XT и AT 286. Индийцы изготавливали деревянные щитки с евророзетками, которые лежали на полу, и программистки, клепавшие армы на фокспре, нажимали на клавишу птания ногой. Всё остальное было американское.
Сначала на ПК была голая ДОС 3.3, в неё входил текстовый редактор edline.com в 15 Кб от микрософтов. Это была суровая вещь для крепких духом людей. Мягко говоря, он не был полноэкранным, а на СМ-1 уже был неофициальный полноэкранный текстовый редактор РИТМ.
Народ с интересом осваивал команды ДОСа типа cd и md. Потом откуда-то понатаскали нортонов, диггеров, тетрисов с пентиксами, капитанов комиков для EGA...
Один начальник сектора привёз Турбо С 2.0, на котором я немного тренировался, потом он пробил покупку хим-дымом Турбо Паскаля 5.5. Завод официально купил его, но у воров (какое-то НПО из г. Калинина). Оно перевело всю документацию, распечатало её в виде брошюр, а саму с-му программирования от Борланда добавляло к этой документации как приложение.
Это была вещь, я катался как сыр в масле: изучай и программируй - не хочу. Я сначала написал свою игру типа тетриса с фигурками гексамино в текстовом режиме, как Пентикс, а потом в графике EGA. Получилось очень неплохо по тем временам. Тогда, в конце 80-х процветали биржи и я даже попытался с пом. местного брокера продать её на бирже за $2000, но неудачно.
А потом я перешёл из программистов в сменные инженеры-электронщики и программировал в своём техсекторе на башне AT 286 с егой.
Я когда-то составлял шахм. задачи на мат в 2 и 3 хода и решил написать программу для решения шахм. задач в любое число ходов. За 3 месяца написал, потом добавил возможность решать задачи на обратный и кооп. мат. В то время я ещё, кажется, не знал о рекурсивных подпрограммах, поэтому моя программа была нерекурсивной, работала безошибочно, ехе файл имел размер 20 Кб.
Также я написал игровой пакет "Игры для ума - 1" под ДОС, статью о нём, а также мой замечательный н/ф рассказик "Прыжок через козла" опубликвали в "Науке и жизни" № 5 за 1997 г. Редакция НИЖ даже пыталась продавать этот мой пакет игр. Почти все номера НИЖ (начиная с 1890 г.) можно скачать в биб-ке Мошкова на publ.lib.ru/ARCHIVES/N/''Nauka_i_jizn'''_(jurnal)/
На моём сайте тоже есть этот рассказик и можно скачать это игровой пакет. На моём старом ПК с вин XP он запросто работает в графике VGA 16 цветов, также и в полноэкране. Особенно, если запускать игры из-под Дос Навигатора. На более совр. ОС нужен DOS Box.
В ДОСе тоже всё летало, а потом пришла Вин 95 (в коробке от микрософтов с 15-ю дискетами) и всё стало тормозить.

Кстати, с Д. Бронштейном я тоже встречался, в правой колонке на моём сайте iqfun.ru см. ссылку на мою статью "Как я озадачил Бронштейна". В ней есть 2 фото с моментами, когда Бронштейн подходит к моей доске на сеансе.

Ещё на этом сайте есть статья о моём гениальном (сейчас такое время, что если сам себя не похвалишь, то никто не похвалит) мультфильме "Великая теорема Стёпы Мошкина", который можно посмотреть на ютюбе:
https://www.youtube.com/watch?v=y0d5vniO2vk
Я для него написал несколько практически гениальных песен, в т.ч. гимн математике, перевёл на русский мировые хиты She's a Lady Тома Джонса и Tombe la neige (падает снег) Сальваторе Адамо (она готовилась ко 2-й серии, и её можно скачать в зипе в mp3).
Также можно прочитать мою статью на Хабре об этом м/ф: https://habr.com/ru/articles/474426/ Там в комментариях можно увидеть мои пояснения и полезные ссылки.

Краткое содержание м/ф: советский школьник Стёпа Мошкин при поддержке своих друзей решил опровергнуть теорию чисел и доказать парадоксальную теорему о том, что существует наибольшее натуральное число, после которого уже нет больше чисел, и получить за это Нобелевскую премию. Школьники догадываются, что находятся под колпаком КГБ, поэтому в мультике звучит тема Штирлица. Откуда сов. школьнику знать, что Нобелевских премий по математике не дают?
Главная интрига 1-й серии: где ошибка в доказательстве Великой теоремы?
Мультик рассчитан на продвинутых школьников, студентов, аспирантов, кандидатов, докторов, медсестёр, нянечек и санитаров, а также на всех, интересующихся математикой.
Приятного просмотра!
 
Serge123, Ну да, ДВК и СМ одно и то же, только у СМ были алфавитно-цифровые дисплеи, но ассемблер тот же PDP. По крайней мере, у нас. А вот старушка БЭСМ, насколько я помню, занимала 226 кв. м., но человек 10-15 как-то обслуживала, хотя сейчас вряд ли найдётся телефон, который превосходил бы её менее, чем в тысячу раз. А отладчиков и сейчас не существует - то говно, которое мне попадалось, само глючило в сколько-нибудь сложных ситуациях, а в простых и сам программер обычно всё видел быстрее любого отладчика. А НПО из Калинина называлось "Центрпрограммсистем".

Минимальный размер нашей шахматной программы был 16К (так называемый ШЭП "Дебют"), а последняя версия... ща погляжу... 31115 байт, графика тоже Еговская 640*450*16. Но эта уже имела громмиейстерский рейтинг на 80486. А на моём старом ПК с вин XP даже и не знаю - у меня против неё шансов нет, а на других она и не проверялась.  С Бронштейном встречался много раз, и вообще считаю его своим другом.
 
Опять кто-то сказки рассказывает
М-6000, М-7000, СМ-1, СМ-2 - это HP(система команд с HP2000),
M6000 - это советский вариант американской HP2000
--------------------------------------
CM3, 4, 1420, - это   DEC(система команд PDP).
DBK - вариант на микропроцессоре 1801.
===================
и система команд у DBK и CM2 совершенно разная. Даже байты перевернуты в числах.

============================
БЭСМ-6 (аналог CDC 6200)  так и осталась самой мощной ЭВМ до 90-х.
-------------------
Но сказочникам все едино.
Страницы: 1 2 След.
Читают тему
Наверх