Как бы я использовал Sevenzipsharp с этим кодом?

Как уже упоминалось, когда вы хотите вызвать метод объекта в новом потоке, вы должны указать адрес этого объекта. Но вам не нужно вызывать boost::bind, вы можете использовать перегруженный конструктор boost::thread следующим образом:

GUIThread = new boost::thread(&Main::MainThreadFunc, GUIMain);

Если метод находится в том же классе, вы используете this, чтобы получить адрес текущего экземпляра, например:

t = new boost::thread(&myclass::compute, this);

Если у метода есть параметры, вы можете указать их после второго аргумента, например:

t = new boost::thread(&myclass::compute, this, p1, p2);
10
задан NightsEVil 24 June 2010 в 09:17
поделиться

1 ответ

Вам необходимо добавить ссылку на SevenZipSharp.dll , а не на обычный 7za.dll или 7z.dll .

Поскольку вам нужны библиотеки dll 7zip, вам необходимо упаковать их вместе с кодом - это не означает, что вам нужно ссылаться на них.

Вы можете добавить в приложение папку с решением / проектом и добавить туда необходимые dll. Убедитесь, что вы установили для их свойства «Копировать в каталог сборки» значение «Копировать, если новее».

1
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: