Can you try fast_io instead of iostream? fast_io always does codecvt itself instead of relying on crt. It also directly supports cryptopp's hash function
On Thu, Jun 15, 2023, 05:14 Jeffrey Walton <noloa...@gmail.com> wrote: > On Thu, Jun 15, 2023 at 12:16 AM fa <fery....@gmail.com> wrote: > > > > I tried two methods: > > > > > > 1. > > > > > > void CryptoHashes::makeFileHash(const QString &filePath) > > > > { > > > > FileSource f(filePath.toStdString().c_str(), true, new HashFilter(hash, > new HexEncoder(new StringSink(digest)))); > > > > } > > > > > > > > 2. > > > > > > void CryptoHashes::makeFileHash(const QString &filePath) > > > > { > > > > std::filesystem::path _path { > std::filesystem::u8path(filePath.toStdString()) }; > > > > std::ifstream m_file(_path, std::ios::in); > > > > > > FileSource f(m_file, true, new HashFilter(hash, new HexEncoder(new > StringSink(digest)))); > > > > } > > > > > > > > the only exception is that when I tried method 2, it always calculated > hash of NULL, no matter which file I selected. > > std::ifstream does not have a ctor that takes a std::filesystem::path. > See https://cplusplus.com/reference/fstream/ifstream/ifstream/ . It > looks like you need to do something like > https://stackoverflow.com/a/45401869 . > > Jeff > > -- > You received this message because you are subscribed to the Google Groups > "Crypto++ Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to cryptopp-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/cryptopp-users/CAH8yC8m09ompC0z8KH%3D7XFQs6nP%3D2vD8hbZpq5ZwF4Da%2BzJVCw%40mail.gmail.com > . > -- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/CAJkdwqFqF%3Di61s6Sny8XyNCA2af9xL1FFkJbTUtvzC-0FdBTLQ%40mail.gmail.com.