Задать вопрос
  • Вызов функций С++ из .h?

    @res2001
    Имя, В Си нет шаблонов. Файл вы можете создать любой, компилятору в принципе все равно какое расширение у него будет. Но содержать он должен C++ код и компилятор надо использовать для С++.
    Обычно компиляторы для Си и С++ разные. Разве что микросовтовский cl умеет и то и то, но там свои заморочки, т.к. официально он стандарты Си не поддерживает (по крайней мере в недалеком прошлом так было, давно уже в него не заглядывал), но Си код компилировать умеет.

    Например в gcc надо использовать g++ для С++ кода и gcc для Си кода.
  • Вызов функций С++ из .h?

    @res2001
    Имя, Инстанцирование - создание из шаблона реального оъекта подстановкой в шаблон реальных параметров.

    В общем, если в заголовках библиотеки шаблоны, то вам надо написать код на С++, который эти шаблоны будет представлять в реальные объекты. И уже эти реальные объекты, созданные вашим кодом вы можете экспортировать в rust.

    Т.е. шаблонный код - это абстракция, которая сама по себе скомпилироваться и исполняться не может. Но когда на основе этой абстракции будет сгенерирован реальный код/объект - его уже можно скомпилировать, выполнить и т.д. и т.п.

    В С++ инстанцирование шаблонов происходит во время компиляции. Компилятор сам создает реальные объекты, подставляя в шаблон соответствующие параметры.
  • Вызов функций С++ из .h?

    @res2001
    Имя,
    правильно ли будет скомпилировать .h файлы в единую .lib и линковать её с Rust?

    Если библиотека на шаблонах, то вы не сможете просто так ее скомпилировать, используя только одни заголовки этой библиотеки.
    Потребуется написать код на С++, который будет инстанцировать нужные в Rustе шаблоны (объекты) и предоставлять их функционал для rust. И уже этот код собирать как свою библиотеку, а не исходную.
  • Как уменьшить время компиляции в UE5?

    @res2001
    Я не в теме game dev и UE. Мне кажется, что перечисленные вами варианты не относятся к компиляции С++ кода.

    Если все же относятся, то:
    1. Есть ccache - кэширует работу компилятора. Дает приличное ускорение при повторных сборках. По моему все современные компиляторы умеют с ним работать.
    2. Если собираете с помощью cmake (или другой аналогичной системрй сборки), то можно установить ninja build и использовать соответствующий генератор cmake. ninja то же дает ускорение по сравнению с make.
    3. Если памяти много, то можно сделать RAM диск и заставить компилятор собирать проект на этом диске.
  • Как автоматизировать процесс установки программ на 1000 компьютерв?

    @res2001
    Перезаливать ОС теряя официальную винду и ставить корпоративный образ

    У вакс куплено 2 версии винды на 1000 компов? Видимо в конторе много лишних денег, раз так разбрасываетесь. На 1000 компов - это существенные суммы.

    Как тут уже писали, ключ прописывавется в биосе и при установке новой винды он подхватывается автоматически.

    Сменить ключ в винде можно без переустановки и превратить например домашнюю в pro, правда там наверняка не хватает какого-то софта. Возможно он подтянется после обновления, а может и нет. Тут я не в курсе, никогда таким не занимался.

    Можно и переустановить. Варианты групповой установки есть, от накатывания эталонного образа, до, например, разворачивания Windows Deployment Services, вроде так это называется сейчас и установки новой винды на компы через PXE загрузку (или с некоторого загрузочного носителя, если биос не поддерживает PXE). Устанавливаемый образ нужно предварительно подготовить, закинув в него файл ответов, где будет прописан корпоративный ключ и т.д. и т.п. Там много чего можно настраивать во время установки через файл ответов.
    Если у вас не будет домена (что само по себе странно, учитывая количество компов), то при установке винды надо как минимум обеспечить чтоб на всех компах был локальный администратор с одним и тем же именем и паролем. Практически все остальные действия на уже установленной винде (зная логин/пароль администратора) могут бы выполнены по сети. Без домена и GPO, это будет достаточно трудоемко на первых порах - нужно будет скриптовать все действия. Впрочем, немного практики и это будет получаться достаточно быстро. Тут даже сторонние утилиты не особо нужны, достаточно имеющихся на борту встроенных средств.

    Бесплатных сторонних инструментов сравнимых по функционалу с AD+GPO нет.
    Платные стоят нормальных денег, а с учетом того, что они либо повторяют либо расширяют функционал AD+GPO, то их необходимость сомнительна.

    У меня был опыт управления не большой сетью без виндового домена. Домен был, но не AD, и у него в плане управления рабочими станциями функционал был достаточно куцый, так что приходилось много чего делать подобным способом.
  • Где в Windows хранятся свойства ярлыков?

    @res2001
    путь к рабочей папке содержится уже некорректный

    Это то что называется "текущий каталог" для запущенной программы.
    Этот путь в принципе может быть любым. Правда, некоторые, криво написанные, программы правильно работают только при указании какого-то определенного текущего каталога (например каталога где лежит исполняемый файл). Правильная программа не должна зависеть от этого параметра своего реального окружения.
    Не корректным этот путь может быть только если он физически не существует. Но и в этом случае винда сможет запустить программу с текущим каталогом видимо где-то в %SystemRoot%\system32
  • Авторизация на папку в батнике, как реализовать?

    @res2001
    Тимур,
    может ли монтировать диск на батнике

    Диск в батнике можно монитровать и размонтировать с помощью net use /?
    На счет прав доступа смотри ответ kalapanga, я с ним согласен, а так же согласен с тем, что лучше бэкап сначала сохранять на локальный диск и потом копировать отдельно от sqlcmd.
  • Авторизация на папку в батнике, как реализовать?

    @res2001
    sqlcmd нормально работает с UNC путями? Я просто не в курсе.
    Просто стандартные виндовые команды cmd не умеют в UNC - надо подключать на букву диска.
    Если sqlcmd дружит с UNC, то ошибка на скрине говорит, что нет доступа. Отсюда вопросы:
    Как запускаете батник? Под каким пользователем? Имеет ли пользователь доступ к сетевому ресурсу?
  • Как в excel удалить дубликаты с объединением значений соседнего столбца?

    @res2001
    DENIS Kokorev,
    Только аддоном можно?

    Если операция одноразовая то можно формулами + немного руками:
    1. Отсортировать по сравниваемому столбцу, пусть это будет столбец А, а объединяемый столбец с данными - B. В вашем случае, похоже, что таблица уже отсортирована как надо.
    2. в ячейке С1 водим такую формулу:
    =ЕСЛИ($A1=$A2;$B1&", "& $C2;$B1)
    и копируем ее до конца тоблицы. Эта формула соберет в самом первом вхождении "Березовой рощи" все данные из нижележащих "Березовых рощ" и т.д.
    3. Затем надо скопировать полученный столбец С в себя же или рядом с помощью операции "Специальная вставка"->"Вставка значения". Пусть мы скопируем это в столбец D.
    4. Теперь надо удалить лишние вхождения. Для этого в столбце E в первой строке ставим 1 вручную, во второй строке вводим формулу:
    =ЕСЛИ($A2=$A1;0;1)
    Формулу копируем до конца таблицы.
    Таким образом все первые уникальные вхождения сравниваемого столбца помечаются 1, а последующие нулями.
    5. Ставим автофильтр на столбец Е, фильтруем по значению 0 и удаляем все отфильтрованные строки. Снимаем фильтр
    6. Удаляем все промежуточные колонки, оставляя только А и D

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

    @res2001
    Для ответа на вопрос его явно надо развернуть, дав ответы на следующие вопросы:
    1. Что такое "подключить файл"?
    2. Какой файл вы собираетесь "подключать"?
    3. Для чего вы собираетесь "подключать" файл?
    В таком виде вопрос звучит очень абстрактно и можно притянуть несколько мало связанных тем, отвечая на него.
  • Почему время выполнения программы так сильно различается?

    @res2001
    pfg21, tmpfs - файловая система в памяти.
    Она за одно снимет и ограничения накладываемые дисками, а это не совсем то что нужно.
    Разве что посмотреть на максимально возможную производительность.
  • Почему время выполнения программы так сильно различается?

    @res2001
    Вы же работаете с файлами. Даже при наличии SSD - чтение файлов будет узким местом в программе.
    Кроме того сама ОСь и фоновые процессы могут чем-то занимать SSD. Так же ранее прочитанный файл уже может быть в кэше ОС или SSD и тогда он прочитается быстрее в следующий раз.

    По хорошему для экспериментов максимально разгрузить диск. Если есть возможность - выделить отдельный физический диск для этих экспериментов .

    Я бы для начала сравнил производительность в однопоточной версии и в многопоточной на одном наборе файлов.
    Если многопоток не дает увеличения производительности, то возможно что-то работает не так как задумывалось (async не всегда может запускать дополнительные потоки, блокировки/взаимоблокировки потоков и т.п.).
    Если все же многопоток дает существеный прирост скорости, то стоит протестировать разное количество потоков и выбрать оптимальное количество, когда последующее увеличение количества потоков не дает увеличения производительности.

    Это точно не вина std::unordered_map и std::unordered_set - как бы ни были они написаны, их производительность на одних и тех же данных будет примерно одинаковой.
  • Как называется сканер зависимостей?

    @res2001
    Dependency Walker есть для win64.
    Правда не обновляется уже давно, похоже автор забил на развитие проекта.
    Но работает вполне исправно на 11 винде.

    В составе MSVS есть утилита ком.строки dumpbin.
    В mingw есть objdump.
    dumpbin и objdump умеют показывать много чего, так что надо поразбираться c опциями, чтоб получить желаемое.
  • Где найти книгу "Компьютерные сети. Нисходящий подход"?

    @res2001
    У букинистов вполне реально купить. Есть в интернете соответствующие площадки.
    Правда иногда приходится ждать довольно долго.
    Несколько лет назад так покупал "Разработку сетевых приложений" Стивенса.

    Вместо «Компьютерные сети. Нисходящий подход» можете взять актуальные издания Олиферов или Таненбаума по сетям. В принципе содержание похожее.
  • Как сложить два 16-ных числа?

    @res2001
    Вообще все арифметические действия в разных позиционных системах счисления (СС) производятся одинаково.
    Но т.к. в жизни мы привыкли только к десятичной СС, то бывает сложно перенести те же действия на СС с другим основанием. Но если немного подумать и набить руку, то станет это делать достаточно легко.
    Например, когда переносим разряд влево при сложении в десятичной системе - это значит мы переносим десяток (т.е. это основание СС), аналогично перенос разряда в 16 СС - это перенос 16 - основание СС и т.д. и т.п.
  • Почему в linux пишет, что недостаточно памяти?

    @res2001
    Такой детализации не достаточно.
    Не знаю, что такое swap.img, это не похоже на стандартный линуксовый файл. Похоже на какой-то образ. Образ swap раздела что ли? Я не в курсе.

    Все остальное - это стандартные линуксовые каталоги они должны быть. Надо лезть глубже. Посмотрите детальней /var и /usr, может там что-то найдете подозрительное.
    На самом деле, возможно просто 10 Гб слишком мало. Я честно говоря уже давненько не ставил пустого линукса. Не могу сказать сколько там требуется места на диске. Раньше вроде бы было достаточно для не больших экспериментов.

    Запускайте du из-под sudo, а то что-то у вас мало стандартных каталогов на скрине.
  • Почему в linux пишет, что недостаточно памяти?

    @res2001
    mmmonk21, Проще всего занового накатить виртуалку с новым диском.
    Если хочется приключений, то:
    1. расширить диск виртуалки, обычно это можно сделать средствами гипервизора
    2. внутри виртуалки загрузившись с livecd с gparted расширить раздел линукса. livecd нужен, т.к. расширять надо раздел root, а он всегда занят.

    Вообще стоит пройтись по разделу и посмотреть что отъедает память. Можно использовать утилиту du для этих целей.
  • Почему в linux пишет, что недостаточно памяти?

    @res2001
    mmmonk21, Да, root раздел занят на 100%
    Создал 3 файла текстовых

    Может в этом причина? Как вы создавали эти файлы? Какого они размера?

    Хотя у вас и так раздел не слишком большой.
  • Безопасен ли класс для многопоточности?

    @res2001
    Acaunt, Да, что-то не допонял этот момент. Хорошо, тогда это снимается.