Здравствуйте, CreatorCray, Вы писали:
CC>Пофигу на имена. В AppData код хранить нельзя.
Много чего нельзя, но все равно все это делают.
Всех на кол?
C>>То есть, по твоему, запускать под админом — лучше? CC>Лучше писать код так, чтобы ему не надо было писать executable на диск во время работы.
Ты от вопроса уклонился. Запускать под админом, по твоему, лучше, чем не под админом и писать в AppData?
Ну в AppData может и не надо бинарники писать, но куда-то надо таки иметь возможность их ставить, если нет админских прав. По идее во что-то типа %UserProfile%\Program Files. Но это не стандартизованно, поэтому всё и пишут куда попало.
Здравствуйте, CreatorCray, Вы писали:
C>>Microsoft, Amazon, Jetbrains, Atlassian C>>Это только пробежавшись беглым взглядом. CC>Пофигу на имена. В AppData код хранить нельзя.
Здравствуйте, CreatorCray, Вы писали:
CC>Пофигу на имена. В AppData код хранить нельзя.
А куда тогда ставиться-то (если без админских прав)?
Microsoft VS Code например в AppData ставится, впрочем, как и все остальные проги которые я видел (если ставятся только для текущего пользователя).
Ты знаешь дугой вариант?
Здравствуйте, CreatorCray, Вы писали:
C>>Правильный ответ — зависит от обстоятельств. CC>Я правильно понимаю что ты руководствуешься не логикой а революционным чутьём?
Конечно. Мы же здесь деньги зарабатываем, а не меряемся пуризмом.
Здравствуйте, CreatorCray, Вы писали:
B>> Вот есть у тебя готовая программа, которая что-то делает. Ты юзаешь из нее dll и потом оказывается, что dll не работает многопоточно. CC>Я уже столько раз видел к какому пц приводят "простые" решения что просто сразу откажусь тратить на них время. После кучи геморроя всё равно придётся сделать правильно, уж лучше сразу.
Пока ты будешь делать правильно, я уже продам свой софт всем твоим потенциальным клиентам.
Кстати, запиши при инсталляции столько DLL, сколько есть процессоров, потом сделай по одному потоку на DLL, и эти потоки запрягай обрабатывать задания какие там надо. В смысле, чтобы один раз записывать уже эти DLL и больше не менять.
Здравствуйте, wantus, Вы писали:
W>Ну в AppData может и не надо бинарники писать, но куда-то надо таки иметь возможность их ставить, если нет админских прав. По идее во что-то типа %UserProfile%\Program Files. Но это не стандартизованно, поэтому всё и пишут куда попало.
Ставить — да, но тут надо каждый раз при запуске фигачить копии DLL на диск.
Здравствуйте, Sharowarsheg, Вы писали:
S>Пока ты будешь делать правильно
Сделать правильно не сильно дольше.
S>я уже продам свой софт всем твоим потенциальным клиентам.
У тебя впереди ещё борьба с антивирями и рассказы пользователям о безобидности того на что их антивири ругаются.
Здравствуйте, wantus, Вы писали:
CC>>Пофигу на имена. В AppData код хранить нельзя.
W>Ну в AppData может и не надо бинарники писать, но куда-то надо таки иметь возможность их ставить, если нет админских прав. По идее во что-то типа %UserProfile%\Program Files. Но это не стандартизованно, поэтому всё и пишут куда попало.
Здравствуйте, Sharowarsheg, Вы писали:
S>Кстати, запиши при инсталляции столько DLL, сколько есть процессоров, потом сделай по одному потоку на DLL, и эти потоки запрягай обрабатывать задания какие там надо. В смысле, чтобы один раз записывать уже эти DLL и больше не менять.
Была идея создать на диске пула из dll, да Проблема в том, dll запускается на каждый плагин, а плагинов теоретически может быть неограниченное кол-во.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
B>Была идея создать на диске пула из dll, да Проблема в том, dll запускается на каждый плагин, а плагинов теоретически может быть неограниченное кол-во.
о, новая вводная тогда пул длл-ек мимо, как и копии процессов. тогда если общение с длл-кой идет атомарными операциями, то можно замутить прокси-длл, которая обеспечит последовательный доступ клиентов к реальной длл-ке. если апи не объемный, то можно сделать довольно лаконично. если объемный, то остается вариант грузить руками. там несложно, но придется бояться каждого апдейта винды.
Здравствуйте, Basil2, Вы писали:
B>Сейчас на втором проекте McAfee внезапно ругается на запись dll на диск (а как ее не писать, когда dll однопоточная а надо несколько; можно в память раскладывать но жаль менять отлаженный механизм). Причем на virustotal он не ругается, а именно по факту записи dll). Хочется как-то подстраховаться от проблем.
Почему нельзя обернуть её однопоточное апи и повесить глобальный мьютекс или другую синхронизацию?
Здравствуйте, ov, Вы писали:
ov> если апи не объемный, то можно сделать довольно лаконично. если объемный, то остается вариант грузить руками. там несложно, но придется бояться каждого апдейта винды.
Здравствуйте, scf, Вы писали:
B>>Сейчас на втором проекте McAfee внезапно ругается на запись dll на диск (а как ее не писать, когда dll однопоточная а надо несколько; можно в память раскладывать но жаль менять отлаженный механизм). Причем на virustotal он не ругается, а именно по факту записи dll). Хочется как-то подстраховаться от проблем.
scf>Почему нельзя обернуть её однопоточное апи и повесить глобальный мьютекс или другую синхронизацию?
Потому что этот ее апи запускает отдельный поток, в котором все и делается и он крутится постоянно (это скриптовый язык). Я пытался подлезть к этому потоку, но там везде синхронизация типа
Sleep(50); // give time to start thread
или
SuspendThread();
... do something that affects thread
ResumeThread();
Это просто худший говнокод в моей жизни. Хотя вроде бы известный уважаемый язык
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
bnk>А куда тогда ставиться-то (если без админских прав)? bnk>Microsoft VS Code например в AppData ставится, впрочем, как и все остальные проги которые я видел (если ставятся только для текущего пользователя). bnk>Ты знаешь дугой вариант?
ставиться с админскими правами. какой смысл тогда от этих админских прав и прочих uac? если каждый балбес может насрать исполнимого кода по своему усмотрению.