Прочитал всю ту ветку, проблема решается коряво, в квике непонятно на какие грабли ещё можно наступить, проблема с OnStop и работа с таблицами, озвучена давно и не решается никак. Т.е. это приводит к непредсказуемым результатам, и техподдержке всё равно что происходит. Вроде как бы почти работает, и так сойдёт их лозунг судя по всему. Печально на это всё смотреть.
На основе описанного в документации QLUA.chm можно сделать вывод, что после вызова OnStop() не гарантировано, что main() завершится до конца, поэтому в вашем случае таблица и не удаляется.
На основе этого предлагаем добавить процедуру удаления окна в тело колбека OnStop().
Самое интересное что, чтобы я не написал в конце main, ломается всё только на DestroyTable, что происходит в этой функции что main не завершается непонятно. там операции с файлами делал, всё норм, цвета и текст в таблице менял, всё работает, кроме DestroyTable.
Алексей написал: ещё кусочек кода который непонятно почему не работает Скрытый текст is_run = true message('start is_run = ' .. tostring(is_run),1) function main() skt_id = AllocTable() CreateWindow(skt_id) SetWindowPos(skt_id, 500, 0, 800, 400) message('main start is_run = ' .. tostring(is_run),1) while is_run do sleep(100) end message('main end1 is_run = ' .. tostring(is_run),1) DestroyTable(skt_id) message('main end2 is_run = ' .. tostring(is_run),1) end
function OnStop() is_run = false return 200 end message('main end2 is_run = ' .. tostring(is_run),1) эта строчка уже не исполняется, всё ломает DestroyTable(skt_id)
проверил код на новой версии 9,4,0,130, проблема та же, не закрывается форточка.
Мы же видим, что результат привнесен текстовым режимом. Как так получилось, надо смотреть.,
Цитата
Алексей написал: через dll вроде нормально можно защитить
Тут надо сначала выяснить, от чего защищаемся. Алгоритм восстанавливать что по луа-дизасму, что по просто дизасму - примерно одно и то же, если восстанавливающий в теме. Другое дело, что это времязатратно, большинство поделий просто переписать с нуля дешевле, чем нанять спеца их курочить. Если задачу реально ставить - а именно: "сложность восстановления алгоритма достаточно высока" - то можно нормально защитить. А если "вообще чтобы никто никогда не сломал", то это нерешаемая задача.
От разного. Вот был случай например, попросили в проекте подсобить, тксть за ящик коньяку. Ну ок, подсобил. А потом один из штатных прогеров статью на хабре накропал, как надо задачку решать (которую я им и порешал) с кусками моего кода, вымарав копирайты. Неприятно же ж.
я бы скрин сделал и показал что всё в бинарном виде я делал, но тут на форуме беда с картинками. не собираюсь я ничего прятать, и не буду свои творения продавать или раздавать, мне просто надо получить кусок бинарного кода, есть идея , пробую реализовать, а тут такая засада.
Как минимум, заменены '1A 0A ' на '1A 0D 0A ' (или \n на \r\n, если не очевидно) и выброшены управляющие символы (01 04 04 04 08 00), что рантайм и должен делать, если файл открыт не в бинарном режиме. И еще какие-то замены должны быть и, хуже того, зависящие от текущей локали.
Цитата
Владимир написал: а на кой вообще нужны эти .luac?
Некоторые на продажу делают, типа сорцы попрятать (до поры или совсем). Правда, конкретно эти luac на раз ломаются.
в бинарном открывал, через dll вроде нормально можно защитить.
переделал исходник, сохраняю совершенно другую функцию, результат отрицательный, не запускается в квике. этот кусочек из файла 1B 4C 75 6153 0019 93 0D 0D 0A 1A 0D 0A 04 08 04 08 08 78 56 00 00 00 00 00 00 00 00 00 00 00 в документации написано Byte numbers are in origin-1 decimal (mostly showing the arithmetic) and origin-0 hex. 1 x00: 1b 4c 75 61 LUA_SIGNATURE from lua.h. 5 x04: 52 00 Binary-coded decimal 52 for the Lua version, 00 to say the bytecode is compatible with the "official" PUC-Rio implementation. 5+2 x06: 01 04 04 04 08 00 Six system parameters. On x386 machines they mean: little-endian, 4-byte integers, 4-byte VM instructions, 4-byte size_t numbers, 8-byte Lua numbers, floating-point. These parameters must all match up between the bytecode file and the Lua interpreter, otherwise the bytecode is invalid. 7+6 x0c: 19 93 0d 0a 1a 0a Present in all bytecode produced by Lua 5.2 from PUC-Rio. Described in lundump.h as "data to catch conversion errors". Might be constructed from binary-coded decimal 1993 (the year it all started), Windows line terminator, MS-DOS text file terminator, Unix line terminator. Получается первые зеленые правильно идут, а между зелеными и красными должны быть байты размерности и их нет. И красные немного не те.
Алексей написал: смотрю кишки файла а там не хватает куска.
Выглядит так, будто были предприняты все усилия, чтобы не заработало. 1) откройте файл с 'wb', а не 'w+' 2) добавьте f:flush() перед f:close() 3) не надо main явно вызывать в конце.
1 абсолютно без разницы какая опция там, результат один и тот же 2 делал, не имеет значения, файл создаётся нормально. 3 это сделано чтобы чисто в lua запускать , без квика и нормально работает если в чистом lua запускать
[img]file:///D:/2022-01-03_14-33-05.png[/img] [img]file:///D:/2022-01-03_14-31-04.png[/img] на синей картинке , кишки полученного файла на другой описание внутреннего формата файла
-- пишем такой код function main() local f = io.open(getScriptPath() .. '\\1.luac', 'w+') f:write(string.dump(main,true)) f:close() end
main()
в результате получается файл 1.luac и он не запускается в quike (пишет corrupted precompiled chunk) смотрю кишки файла а там не хватает куска. [img]data:image/png;base64,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[/img]
согласно документации после версии LUA должно быть ещё 6 байт