QUIK 8.0

Страницы: Пред. 1 2 3 4 След.
RSS
QUIK 8.0
 
Цитата
Анатолий написал:
x86_64-w64-mingw32-gcc-4.8.3 lfs.c -o lfs.dll
https://forum.quik.ru/messages/forum10/message38672/topic4609/#message38672
 
Цитата
Анатолий написал:
 Выставил непомогло,
Включил multibyte ненпомогло
Таки помогло, E0144, E0167, C2440, C2664 же больше нет?
Цитата
Анатолий написал:
Тем более вытаскивать ничего ненадо, в луабинариях с сорсефоржа  https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/ ,  которые для мингв64 есть либа - liblua5.1.a ,  это она ведь нужна?
Нет, не она, нужна именно вытащенная из qlua.dll и именно из вашей версии квика. Но это пока в сторону отложите, пусть компилятор сначала до конца отработает, потом будете линкер мучать. А чтобы компилятор отработал, разберитесь с вызовами strerror, sprintf и прочими, в ошибках написано даже как именно, либо заменить на sprintf_s сотоварищи (рекомендуется), либо в препроцессор вписать D_CRT_SECURE_NO_WARNINGS (что сделает код еще более говнокодом, но он скомпилируется). Таки да, если кодеру влом каст явный сделать и проверить диапазон size_t, прежде чем пихать его в int, такой код зовется говнокодом, независимо от его работоспособности.
 
Anton,

вы бы вместо рассуждений о несовершенстве вселенной помогли человеку и собрали бы ему библиотеку.

время то же и польза для вселенной отлична от нуля.  
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
вы бы вместо рассуждений о несовершенстве вселенной помогли человеку и собрали бы ему библиотеку.
время то же и польза для вселенной отлична от нуля.  
Попробую к таксисту так подойти, че мол сидишь в телефон пялишься, давай до ашана сгоняем, время-то то же, и польза для вселенной.
 
Цитата
s_mike@rambler.ru написал:
вы бы вместо рассуждений о несовершенстве вселенной помогли человеку и собрали бы ему библиотеку.
Надо самому научится, раз пошла такая тема массового перехода на 64 бит )))
 
Цитата
Anton написал:
Но это пока в сторону отложите, пусть компилятор сначала до конца отработает, потом будете линкер мучать. А чтобы компилятор отработал, разберитесь с вызовами strerror, sprintf и прочими, в ошибках написано даже как именно, либо заменить на sprintf_s сотоварищи (рекомендуется)
Заменил все те функции на их рекомендуемые секьюрные аналоги с добавкой _s, ошибок полезло еще больше, теперь в этих всех функциях стало нехватать аргументов, вы не забывайте что не продвинутые юзеры, и даже программисты могут похвастаться тем что в Сях разбираются, большинство неразбираютя совсем, ошибки на скринах, может разложите их что к чему да и все вместе тут научимся чужие гвнкоды править
Цитата
Anton написал:
либо в препроцессор вписать D_CRT_SECURE_NO_WARNINGS
Вписал _CRT_SECURE_NO_WARNINGS заодно и _CRT_NONSTDC_NO_WARNINGS
как мелкософт советуют:
https://docs.microsoft.com/ru-ru/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4996...
После этого библиотечка скомпилилась на ура, без ошибок и предупреждений, уже подключил её в квик юниор 64бит
и она там в скрипте отлично работает, спасиб, ну а то что исходники из 946 строк кода написаны как то несекьюрно совсем не вызывает опасений - явно там сложновато запихнуть трояны бэкдуры и вирусы
 
Цитата
Анатолий написал:
Прикрепленные файлы
Ashampoo_Snap_2
Эта либа точно x64?
Попробуйте пересобрать Lua5.1 из исходников вашей версией MSVS.
Q
 
Цитата
Анатолий написал:
 Заменил все те функции на их рекомендуемые секьюрные аналоги с добавкой _s, ошибок полезло еще больше
Ожидаемо, там сигнатуры другие, придется и окружающий код править. Расписывать реально долго, в принципе можно оставить strerror как есть, она в эту компанию попала можно сказать "случайно", а попробовать заменить только sprintf, но у sprintf_s надо будет добавить второй параметр - размер буфера (который в первом параметре передан), а дальше все то же самое.

Цитата
Анатолий написал:
Вписал _CRT_SECURE_NO_WARNINGS заодно и _CRT_NONSTDC_NO_WARNINGS
как мелкософт советуют
Можно и так оставить, конечно. Там проблема с безопасностью не самой этой либы, а что она с устаревшими функциями может вызывать переполнение буфера, никак не детектируемое, а уж этим могут воспользоваться вирусы и трояны (не из этой либы).
 
Цитата
QApplication написал:
Эта либа точно x64?
Вы про какую - liblua5.1.a  или  lua5.1.lib?
Качал отсюда - https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/
Там же написано вроде - lua-5.1.5_Win64_mingw6_lib.zip       и  lua-5.1.5_Win64_vc15_lib.zip    64х битные вроде должны быть  
 
Цитата
Anton написал:
Расписывать реально долго
А есть хорошие ссылочки по которым можно на эту тему просветится более подробно, как правильно все эти несьюрные функции заменить на секьюрные? Или же это надо вообще Си изучать полностью?
 
Цитата
Анатолий написал:
Цитата
Anton написал:
Расписывать реально долго
А есть хорошие ссылочки по которым можно на эту тему просветится более подробно, как правильно все эти несьюрные функции заменить на секьюрные? Или же это надо вообще Си изучать полностью?
https://docs.microsoft.com/ru-ru/cpp/c-runtime-library/security-features-in-the-crt?view=vs-2019

но и без этого  был С99

https://en.cppreference.com/w/c/io/fprintf

надо смотерть по коду , тк в Си многое на усмотрение кодера
 
Цитата
Анатолий написал:
 А есть хорошие ссылочки по которым можно на эту тему просветится более подробно, как правильно все эти несьюрные функции заменить на секьюрные? Или же это надо вообще Си изучать полностью?
Вкратце суть в том, что в "безопасную" функцию передается размер буфера, так что она может проверить, что не вылетела за его границу, старые функции такого параметра не имели и вынуждены были "верить", что кодер подготовил буфер достаточной длины, что не всегда просто, особенно для sprintf со сложным форматом. В той же вашей либе взгляните на строки 555-558, там как раз автор проверяет, что буфера достаточно. Конкретно в этом месте можно сказать, что безопасно и без замены. Заменить достаточно легко, большинство новых функций похожи на старые, только добавлен второй параметр "длина буфера". Но не все, некоторые возвращают другой тип (код ошибки вместо длины, например), некоторые (та же strerror) вообще отдаленно похожи, в каждом случае лучше в доку глянуть.

Обзорная статья https://docs.microsoft.com/en-us/cpp/c-runtime-library/security-features-in-the-crt?view=vs-2019 , конкретно по sprintf_s с друзьями https://docs.microsoft.com/en-us/cpp/c-runtime-library/security-features-in-the-crt?view=vs-2019
 
А самая подлянка в том, что в случае выхода за пределы буфера эти, т.н. "безопасные" функции бросают исключение. И программа просто падает.
Да здравствует "безопасный" подход от микрософт!

Если уж хочется контроля буфера, нужно использовать семейство функций snprintf которые обрезают строку по длине буфера.
 
Цитата
Imersio Arrigo написал:
А самая подлянка в том, что в случае выхода за пределы буфера эти, т.н. "безопасные" функции бросают исключение. И программа просто падает.
И это правильно, я еще и ассертов натыкиваю через строчку. Пусть она у меня в отладчике лучше упадет, чем у юзера в самый ненужный момент. В чем, собственно, и отличие подходов "никсоводов" и "виндузятников". Первый пишет абы как, "потом поправлю либо кто-нибудь поправит, опенсорц же ж", потом никогда не наступает и этот код десятилетиями кочует по интернетам и проектам в первозданном недовиде. Второй знает, что ежли у юзера что обвалится, субботник будет именно у него, родимого, так что лучше полдня потерять, потом за пять минут долететь.
 
Цитата
Anton написал:
И это правильно, я еще и ассертов натыкиваю через строчку.
Супер. Каждый роет себе могилу сам. Но это если ты сам код пишешь.

А вот тому чуваку - совет переходить на *_s это лишняя куча проблем.
 
Цитата
Imersio Arrigo написал:
 Супер. Каждый роет себе могилу сам. Но это если ты сам код пишешь.
А вот тому чуваку - совет переходить на *_s это лишняя куча проблем.
Куча проблем как раз будет, если программа не рухнет на переполнении буфера. Просто посмотрите, что будет после оверрана. В идеальнейшем варианте мы затрем стековый кадр и рухнем на ближайшем return'е, это будет просто подарок. А если мы затрем заголовок кучи? Через полчаса прога свалится на free и мы будем в мыле искать, что вообще произошло, а уж "где" это произошло найдем только чудом. А если буфер - часть структуры и мы затрем другие ее поля? Ничего вообще не рухнет, а на выходе будет мусор, и с хорошей вероятностью мы вообще ничего не найдем никогда. Нет уж, пусть оно рушится в момент преступления.

В данном конкретном случае как раз автор проверил длину перед sprintf, можно оставлять как есть, уже было признано.
 
Раз уж на то пошло и тут появились такие серьезные спецы то хотелось бы задать еще вопрос, правда это уже будет оффтопик, потому что другая тема, вообщем может кто из вас может разобраться со следующим:
Почему в Винде 10 билд 1607 упорно не хочет работать экспорт по DDE из Квика в Эксель? Все что можно нагуглить перепробовал - ничего не помогает, в тоже время как в Винде 7 и во всех билдах 10ки после 1607 экспорт по ДДЕ работает без проблем, сразу же как только установил Квик, установил МС Оффис, без каких либо настроек, жамкнул в квике - вывод через ДДЕ сервер, и вывод в эксель пошел, в 1607 все перепробовал уже - ни в какую не идёт, советы поставить где нибудь какую нибудь галочку негодятся, уже все галочки перепробовал, - и убирал в экселе игнорировать запросы от сторонних ДДЕ
и в Квике ставил - новый поток на отдельный ДДЕ сервер, все ставил и убирал в различных комбинациях - ничего не помогает, проблема именно где то в самой системе, может надо какую то dll'ку перекинуть из билда 1703?
Смотрю зависимости DDE2EXCEL_PR.dll, может какую то из dll с которыми он имеет зависимости надо перекинуть от более старших билдов 10ки? И почему у C:\windows\system32\kernel32.dll и  C:\windows\system32\user32.dll так много dll горят красным? т.е. их попросту нет в системе и kernel32.dll и user32.dll их не могут найти? Может в этом проблема?
 
Цитата
Anton написал:
В чем, собственно, и отличие подходов "никсоводов" и "виндузятников".... Второй знает, что ежли у юзера что обвалится, субботник будет именно у него
не нужно сравнивать теплое и мокрое.
когда речь о бизнес-проектах, то решение пишется под тех. задание заказчика и фиолетово какая там ось или что-то еще
а учебные поделки - везде остаются самими сабими
 
Цитата
Anton написал:
можно оставлять как есть, уже было признано.
дык это надо выяснять до разадачи цу, имхо

и ... для малых и/или учебных задач не факт, что это лучше - обкладывать обвязками

полезнее не терять таки контроль, а некоторым это само - вкайф
 
Повторю свой пост в этой ветке.
По ссылке можно взять готовый пример DLL на C++ для QUIK 8 (x64).
И все .lib-файлы для сборки там есть.

https://quik2dde.ru/viewforum.php?id=14

Просто взять готовый проект и на его основе делать. Только переименовать )
 
Цитата
новичок написал:
 не нужно сравнивать теплое и мокрое.
когда речь о бизнес-проектах, то решение пишется под тех. задание заказчика и фиолетово какая там ось или что-то еще
а учебные поделки - везде остаются самими сабими
В общем да, погорячился, скорее имелось в виду то, что можно скачать с гитхаба, даже, казалось бы, "нормальные" либы. Особенно когда портируют под винду с никсов. Вон подивитесь на "защиту от атаки по боковому каналу" в известной криптолибе , виндовая ветка. Все бы хорошо, да working set по дефолту 50 страниц всего и никто даже не пытается его увеличить. Там дальше если порыться, окажется, что ошибка лока просто игнорируется. Нормальная такая защита.
 
Цитата
новичок написал:
 дык это надо выяснять до разадачи цу, имхо
Потом уже в код посмотрел, сначала только на скрины. Впрочем, там автор именно что забил болт на виндовые ворнинги. Ну есть же уже условная компиляция, что мешало нормально написать-то.
Код
#ifdef _WIN32
        d->hFile = 0L;
        if (strlen(path) > MAX_PATH-2)
          luaL_error (L, "path too long: %s", path);
        else
          sprintf (d->pattern, "%s/*", path);
#else
        d->dir = opendir (path);
        if (d->dir == NULL)
          luaL_error (L, "cannot open %s: %s", path, strerror (errno));
#endif
 
Цитата
Анатолий написал:
Раз уж на то пошло
Про десятку мало что могу сказать, по идее, если бы длл не находились, ошибка была бы другая, хотя тут у арки надо спрашивать. Попробуйте не в эксель экспортнуть, сразу будет ясно, квик ли виноват или винда с офисом. Хоть бы в эту шнягу
 
Цитата
Anton написал:
хотя тут у арки надо спрашивать
Уже тут же на форуме подымал эту тему, арки помочь не смогли, да и дело тут явно не квике а в винде, офисы тоже перепробовал с 2003 по 2010, непомогает, что то там в билде 1607 с механизмом DDE не так, изучить бы этот механизм и понять, может удастся найти проблему, не посоветуете ли где об устройстве ДДЕ почитать можно?
 
Цитата
Анатолий написал:
что то там в билде 1607
дде сломали пока венду ломали :)
 
Теперь другой трабл, с компиляцией простенького исходника состоящего из одного си сорс файла разобрались (несовсем конечно но лучше чем ничего, спасибо вам) теперь далее - это был наверно один из редких случаев когда в исходниках один си сорс, а так в основном сишник там не один и не несколько, а много, значится качнул я сорсы луасокетов от диего нехаба https://github.com/diegonehab/luasocket  распаковал, создал пустой проект, вообщем все как по той инструкции с предыдущей страницы из qluasharp, создал в папке нового проекта папку lua, закинул в неё луёвые хедеры и либу lua5.1.lib, путь к ней есс-но в свойствах проекта прописал, хедеры из сорсов закинул тоже в папку lua, сишные же сорсы закинул в корневую папку проекта, потом в обозревателе решений в пункт "исходные файлы"  добавил все сишные сорсы  а в пункт "Файлы заголовков" все хедеры, в итоге повалилось много ошибок что сишные сорсы не видят хедеры, странно, все же делал как в прошлом разе с LuaFileSystem, разница только в том что там создавал пустой cоpс и закидывал в него код копипастой а теперь просто добавил сорсы в проект, но не думаю что в этом есть какая то разница, причем что странно - смотрю что в сорсах хедеры инклюдятся в одних местах окруженные скобками " ",  в других местах окруженные скобками < >, поправил везде на < > но ничего не изменилось, вообщем что делать непонятно и из за чего ошибки, отключение варнингов препроцессора непомогло
 
Цитата
Анатолий написал:
не посоветуете ли где об устройстве ДДЕ почитать можно?
DDE хорошо описан в книге Петзолда (или Петцольд, по-разному пишут). По сути там вообще ничего сложного нет, окна посылают друг другу сообщения. Единственное, что могли поломать, - это когда вводили ограничения на обмен некоторыми сообщениями, то ли с восьмерки, то ли как раз с десятки. На память не скажу, какие именно запрещали, но что-то было. Может краем и коснулось.
Цитата
Анатолий написал:
поправил везде на < > но ничего не изменилось
Эт вы напрасно. Кавычки - значит файл лежит в папке проекта, скобки угловые - искать его "по стандартному пути". А где именно искать надо вписать в
 
 
По поводу неработающего DDE я думаю вот в эту сторону, другое что-то придумать сложно. При условии, конечно, что квик и эксель работают от одного юзера на одной машине, в офисе все настроено "нормально" и никакие касперские препятствий не чинят. Самому разбираться некогда, вбрасываю идею, а верная или нет надо смотреть.
 
Цитата
Anton написал:
А где именно искать надо вписать в
Вписал, теперь другие ошибочки полезли  
 
Цитата
Анатолий написал:
 Вписал, теперь другие ошибочки полезли    
Теперь вот этот вот макрос, что в описании ошибок предлагается, надо в препроцессор вписать. Как с crt ворнингами, система та же.
 
Цитата
Anton написал:
система та же
Вписал в препроцессор _WINSOCK_DEPRECATED_NO_WARNINGS, теперь другие ошибки  ))))))))))  
 
Цитата
Анатолий написал:
Цитата
Anton написал:
система та же
Вписал в препроцессор _WINSOCK_DEPRECATED_NO_WARNINGS, теперь другие ошибки  ))))))))))    
Тут уже можно промежуточные поздравления выдать, компилятор у вас до конца отработал, это уже линкер плачет. Во-первых, ему не хватает либы winsock, ws2_32.lib надо вписать в зависимости. Самое простое это в одном из сорцев (.c или .cpp) дописать где-нибудь #pragma comment(lib, "ws2_32.lib") на отдельной строке. Во-вторых, у вас где-то стоит неправильный рантайм, ну то есть у одних файлов например MultiThreadedDebug, а у других MultiThreaded, либо разные SDK. Об этом первая ошибка на скрине. Тут надо тщательно настройки посмотреть, чтобы одинаковые были.
 
Цитата
Anton написал:
#pragma comment(lib, "ws2_32.lib")
Как то только вот это вставил в luasocket.c, жамкнул пересобрать проект - и сборка прошла до конца без ошибок,
но только вот есть размышления - собралась у меня значится одна библиотечка dll,  с названием проекта, как я его назвал, так как проект я создал сам прилепив в него чисто .c и .h файлы из src папочки сорсов luasocket-master, в самой же этой папочке в корне были уже готовые файлы проекта под MSVC Studio,



я сначала их трогать не стал, решил дай думаю сам попробую, сделал сначала получается по своему, теперь наконец то получилось, и сразу сейчас открыл готовый проект от Диего, тоже пришлось чуток помучаться но там все проще - я стал делать по предыдущему образцу, но сборка не пошла во первых он стал ругаться - не вижу мол либы lua53.lib, я думаю зачем ему либа от луа53? я же дал ему либу от луа51, потом в ошибках прочитал - дословно непомню что в командной строке задано - lua53.lib и ненаходится - захожу в Свойства - C/C++ -  Командная строка - там действительно прописано - lua53.lib причем изменить невозможно,



хорошо, тогда просто переименовал либу lua5.1.dll в  lua53.lib - но не прокатило на компиляции повалились ошибки

Вижу непрокатит подстановка, скачал тогда луабинарии 5.3 x64 отсюда https://sourceforge.net/projects/luabinaries/files/5.3.5/Windows%20Libraries/Dynamic/lua-5.3.5_Win64...

закинул либу и хедеры в проект от Нехаба - жамкнул Пересобрать проект - все прошло сразу до конца и без ошибок
Но в отличие от того что у меня собралась одна dll'ка  размером  108 Кб в проекте у Нехаба собралось две dll'ки  -  core.dll размером 18,5 Кб и 52 Кб  в двух разных каталогах -  mime и socket соответственно,  так что же в итоге получилось у меня и у Нехаба? У меня что получилась одна совмещенная из двух длл? Совсеми функциями из двух нехабовских длл?
И почему у Нехаба проект лупил ошибки когда я ему подсунул либу и хедеры от луа51 вместо луа53 а у меня не ругался и скомпилился? В проекте Нехаба я тоже пробовал #pragma comment(lib, "ws2_32.lib")  прописывать в луасокет.с
(да у него это итак в свойствах прописано) непомогло, и почему параметры командной строки в свойствах жестко заданы и не меняются? Т.е. Нехаб получается изначально задумал исходники строго под луа53? А под Луа5.1 что? Надо более ранние качать или эти все таки могут пойти? Надо будет конечно попробовать в работе дллку что я скомпилил, может и заработает, и вообще возможно ли заставить заработать дллки от луа53 в луа51? (В квике ведь Луа51, разрабы не спешат за прогрессом а жаль)
 
Цитата
Анатолий написал:
там действительно прописано - lua53.lib причем изменить невозможно,
А там и нельзя менять, этот экран просто показывает, что поедет в командную строку, для тех, кому интересно. Менять надо раньше, оно должно быть в настройках линкера, вот там можно поменять lua5.3 на lua5.1, но, конечно, если проект захочет чего-то, чего в 5.1. нет, так он этого и не найдет. А если автор просто вписал 5.3, потому что "стильно модно молодежно", то прокатит.
Цитата
Анатолий написал:
Но в отличие от того что у меня собралась одна dll'ка  размером  108 Кб в проекте у Нехаба собралось две dll'ки  -  core.dll размером 18,5 Кб и 52 Кб  в двух разных каталогах -  mime и socket соответственно,  так что же в итоге получилось у меня и у Нехаба?
В студии строго один проект - один выход. Значит, у него там два проекта в одном солюшене. Получилась ли совмещенная длл? Возможно. А возможно нет. Тут надо взять dependency walker (x64), открыть им эти три длл и поглядеть, что они экспортируют. Ну и в деле попробовать.
Цитата
Анатолий написал:
И почему у Нехаба проект лупил ошибки когда я ему подсунул либу и хедеры от луа51 вместо луа53 а у меня не ругался и скомпилился?
Судя по ошибкам, он сам что-то не то в проектах накрутил. Intermediate directory у проектов действительно должны быть разные, можно там конечно руками поправить, но так тут поправил, там поправил, и опять вышло что-то свое. Вообще говоря есть такая проблема, программеры как-то слабо шарят в процессе сборки проектов студией, иной раз глянешь в настройки - там дичь лютая. Ну привык чел всю жизнь мейкфайлами собирать, что тут сделаешь.
Цитата
Анатолий написал:
Т.е. Нехаб получается изначально задумал исходники строго под луа53? А под Луа5.1 что? Надо более ранние качать или эти все таки могут пойти? Надо будет конечно попробовать в работе дллку что я скомпилил, может и заработает, и вообще возможно ли заставить заработать дллки от луа53 в луа51?
Без детального разглядывания сорцев на первый вопрос не ответить. Повторюсь, если он просто обновил зависимости, оставив код совместимым с 5.1, все и так работать будет, если завязался на что-то новое из 5.3 - то не будет, придется действительно более старые версии смотреть.
Цитата
Анатолий написал:
(В квике ведь Луа51, разрабы не спешат за прогрессом а жаль)
На самом деле не жаль. Вот эта вот бесконечная свистопляска с "новыми версиями", три буквы поменяли, но ничего уже не совместимо, это все очень здорово для индустрии, все типа при деле, все премии получили, а юзеры там пусть пляшут как хотят, это не то, что хотелось бы видеть под названием "прогресс".
 
В общем, качнул я с гитхаба эту штуку, посмотрел. Там два проекта действительно, причем в настройках автор, похоже, решил показать "глядите как умею", так что в итоге проще свои проекты создать, чем в этом арт-объекте разбираться. Общая длл, скорей всего, получилась, только, видимо, через require луа ее не загрузит, а через package.loadlib сможет.
 
Цитата
Anton написал:
В общем, качнул я с гитхаба эту штуку, посмотрел
Anton написал:
В общем, качнул я с гитхаба эту штуку,Может будете так добры что поможете еще и библиотечку SSL под луа 64бит скомпилить? Отсюда я так понимаю должна пойти https://github.com/zhaozg/lua-openssl  ,  вообщем там ппц полный, слишком долго будет расписывать ошибки,   вообщем создал также проект с нуля, добавил в него хедеры и исходники,  все прописал как и раньше, и началось, при  сборке проект начал ругаться  на нехватку многих хедеров, которых в исходниках вовсе и небыло, я  нашел их в оригинальных исходниках от Openssl - https://www.openssl.org/source/, например в  этих - https://www.openssl.org/source/openssl-1.1.0l.tar.gz,
можно  было бы и оригинальные openssl конечно скомпилить но там еще все  сложнее, они под компиляцию перлом и в x86 - тогда скомпилить будет  просто а в x64 это надо будет еще дольше разбираться  как этим перлом  компилить,
вообщем взял оттуда все недостающие хедеры, и еще проект ругался на нехватку таких хедеров как compat-5.3.h
Его взял отсюда
https://github.com/keplerproject/lua-compat-5.3
и  compat.h - его вообще толком ненашел,  потом еще проект при сборке  ругался на нехватку хедера subsidiar.h вызываемой из openssl.h,  subsidiar.h - вообще нигде ненашел, как так - подключают в свои  исходники библиотеки  но сами эти библиотеки в исходники не добавляют,  мол если у вас их нет то ищите их где хотите, вообщем хоть я subsidiar.h  и  ненашел но потом почему то сообщение о нехватке этого хедера пропало  когда все хедеры что были из сорсов openssl перекинул в проект, ну и в  итоге все сообщения о нехватке хедеров пропали и теперь только куча  ошибок валится, аж целых 1294:
https://cloud.mail.ru/public/2m4q/2dfroxagV
 
Цитата
Anton написал:
Общая длл, скорей всего, получилась, только, видимо, через require луа ее не загрузит, а через package.loadlib сможет.
Проверил только что - моя скомпиленная дллка 2 в 1 норм подключилась скриптом в квик юниор 64 бит и её функции работают - скрипт отправляет емейлы норм!  А вот оригинальные компиленные дллки из нехабовского проекта скрипт даже несмог подключить

error loading module 'socket.core' from file 'C:\QUIK-Juniorx64\lua\socket\core.dll':
   Не найдена указанная процедура.

- я так понимаю это потому что что дллки для луа53, уже не раз пробовал - дллки от луа51 неработают в луа53 и наоборот
 
Цитата
Анатолий написал:
- я так понимаю это потому что что дллки для луа53, уже не раз пробовал - дллки от луа51 неработают в луа53 и наоборот
Там куча причин. Во-первых, по дефолту у него стоит DLL рантайм, у вас встроенный, судя по размеру получившейся длл. Во-вторых, он озаботился-таки совместимостью с луа 5.1. Для этого он добавил compat.h и compat.c. По-хорошему надо было из них отдельный либ-проект сделать (третий), но он вот так решил, что и заставило его делать общий intermediate directory, на что у вас потом студия ругалась. Там надо препроцессору указывать LUA_VERSION_NUM=501 в обоих проектах, это включит замены из compat, проверяется этот макрос в двух местах, тут и тут, и видно, что без макроса весь этот код просто игнорируется. Вот тогда можно с чистой совестью менять в настройках линкера 5.1 на 5.3 и подсовывать собственно либу 5.1. Ну и все сорцы на винде компилировать не нужно, там часть их никсовые. Вреда от них, впрочем, быть не должно, линкер выбросит, если что. Раз все работает (хотя я и не понял, почему), то пусть так и будет, видимо.
Цитата
Анатолий написал:
Может будете так добры что поможете еще и библиотечку SSL под луа 64бит скомпилить?
Саму openssl настоятельно рекомендую скачать собранную, они есть. Ибо тот факт, что она собралась и запустилась, совсем не значит, что там хоть какой-то уровень безопасности получился. Обертку вечером гляну, даже скорее ночью, пока ничего сказать не могу.
 
Цитата
Anton написал:
Саму openssl настоятельно рекомендую скачать собранную, они есть
Есть то есть, но вот чтобы 64х битную и для луа51 сгодилась это поискать надо
Да и теперь другие проблемы появились, попробовал уже законнектится к брокеру новым квиком 64бит - похоже что не получится пока брокер у себя тоже на 64бит не поставит, https://forum.quik.ru/messages/forum1/message39956/topic4529/#message39956
 
Вот свинью подложили квиковцы с 64 версией. У меня скрипты были написаны которые вели учет операций и их доходность на luasqllite3.
Робот торговый. А теперь это все не работает.   Библиотеку перекомпилил под x64. Запускается пять секунд работает и quik падает. Ни у кого не получилось собрать рабочую библиотеку?  
 
Цитата
Владимир написал:
Вот свинью подложили квиковцы с 64 версией
А какая у вас необходимость то была переходить на 64? У меня потому что было желание внести в скрипт некоторые функции из-за которых скрипт стал выжирать более 2Гб и стал отваливаться с ошибкой not enough memory, а у вас?
Цитата
Владимир написал:
Библиотеку перекомпилил под x64
Может неправильно перекомпилили как-то
Цитата
Владимир написал:
Запускается пять секунд работает и quik падает
Ошибку пишет какую?


Цитата
Владимир написал:
У меня скрипты были написаны которые вели учет операций и их доходность на luasqllite3
В квике,  с помощью луа скрипта,  учет и доходность можно вообще вести дешево и сердито - выгружая данные по ходу дела в текстовые логи  а потом  анализируя их также в скрипте, в луа для этого есть много мощных средств обработки текстовой информации из текстовых файлов - быстро просто надежно,  и не нужно никаких sql
Иерусалимчий как раз для этого (и не только) луа и написал
 
Цитата
Анатолий написал:
при  сборке проект начал ругаться  на нехватку многих хедеров
Долго ли, коротко ли, скачал я эту либу, посмотрел. Там автор сильно автоматику любит, симейки там всякие, а я наоборот на дух их не перевариваю, так что "простой" способ, видимо, не сообщу. Чуть более сложный - это подтянуть зависимости руками, в deps/auxiliar это https://github.com/zhaozg/lua-auxiliar, в deps/lua-compat это https://github.com/keplerproject/lua-compat-5.3 и собрать все это мейкфайлом, не студией. Сам по себе процесс примитивнейший, запускаете VisualStudioCommandPrompt (x64), переключаетесь в папку проекта и командуете nmake -f Makefile.win, после чего все должно само и собраться, ежли, конечно, там других косяков нет.

Что касается openssl, просто скачайте 64-битные бинарники, там версия луа ни на что не влияет.
 
Привет, слушай выручи пожалуйста - можешь помочь скомпилить библиотечку https://github.com/jmckaskill/luaffi  я бился бился ничего не получилось, все  по мануалу автора делал неполучается
 
Цитата
swerg написал:
Просто взять готовый проект и на его основе делать. Только переименовать )
Стал делать по вашему образцу, думаю сделать полезную подключаемую библиотечку
Код
static int forLua_httprequest(lua_State *L) {
1        const char* url = luaL_checklstring ( L, 1 );
2   const char* method = luaL_checklstring (L, 2);
3   const char* parameters = luaL_checklstring (L, 3);
4   double SomeCounter = luaL_checknumber (L, 4);

   somefunc1 (url, SomeCounter);

   somefunc2 = api.call(method, parameters, "");

   

   lua_pushstring(L, response);
   return(1); 
}


Т.е. - первые три аргумента  в функцию будут передаваться строчными, четвертый - число, MSVStudio 2107 лупит мне ошибки:
с 1 по 4ую строки - слишком мало аргументов в вызове функции,  в чем ошибка? Вроде все по вашему примеру...
 
Вроде вот так ошибка пропала:

Код
   const std::size_t l=0;
    const char* url = luaL_checklstring ( L, 1, l);
    const char* method = luaL_checklstring (L, 2,l);
    const char* parameters = luaL_checklstring (L, 3,l);
 
Цитата
swerg написал:
Просто взять готовый проект и на его основе делать. Только переименовать )
Вообщем все равно ошибки лупит, делаю все как в вашем образце а ошибки там где я даже ничего и не трогал:

 
 
Цитата
Анатолий написал:
бился бился ничего не получилось, все  по мануалу автора делал неполучается
Тот случай, когда лучше к автору и обратиться. Раз он настолько крут, что бат-файлом проекты собирает и не стесняется это говно на публику выкладывать.
 
Цитата
Anton написал:
Раз он настолько крут, что бат-файлом проекты собирает и не стесняется это говно на публику выкладывать.
зря ты так.
многие неплохие программеры-виндузятники в итоге понимают, что нездоровы, но не могут сами себе поставить диагноз.
больно им. пожалеть их нужно.
нищета и воинственность сломали не одну судьбу на просторах российских.
 
Цитата
новичок написал:
воинственность
угу. ни шагу назад, сделаем вижл студию снова великой, все такое. чел скачал проект, выполнил все по инструкции, ничего не работает. ежли аффтар получит тикет и малость поразмыслит, почему так получилось, что вместо воскресной поллитры он вынужден ковыряться в своем собственном проекте, это будет гораздо полезнее для всех, чем левый чувак вроде мну соберет-таки это чудо по-своему.
 
Цитата
Anton написал:
Раз он настолько крут, что бат-файлом проекты собирает
Это у него батник для запуска в командпромте визуалстудии
Страницы: Пред. 1 2 3 4 След.
Читают тему
Наверх