Actually somebody did create Source/Sink based on CFile (MFC). If you only use windows and can use MFC, that would work for you.
Look here: http://www.codeproject.com/KB/MFC/CryptoPPCFileMFC.aspx > Thank you, Eugene, I've just tried the code, and it works exactly. > It's a nice solution. > Is there a better one? > Maybe someone has made a Unicode version, replacing std::string by > std::wstring in the lib-code CryptoPP. > > > On Jun 26, 2:15 am, Eugene Zolenko <[email protected]> wrote: > >> That's not CryptoPP problem, but rather broken standard C++ unicode >> support. >> >> On windows you can use non-standard extention to fstreams -- they can >> be created from FILE handles, and FILEs can be created using _wfopen. >> And FileSink/Source can be created using fstreams. >> >> std::wstring path = L"D:\bla.txt"; >> FILE* handle = _wfopen(path, L"rb"); >> std::ifstream file(handle); >> CryptoPP::FileSource(file, ...); >> >> On Linux you will have to convert you std::wstring into UTF8 encoded >> std::string first. (Using your favorite UTF8 conversion libraries :)). >> >> Note that using UTF8 converted string on windows doesn't seem to work. >> >> On Jun 24, 10:10 pm, Kincorn <[email protected]> wrote: >> >> >> >> >>> I'm a new user, and Crypto++ is really wonderful and powerful, >>> haha ... >>> >>> When using FileSink with path including non-ascii chars (e.g. >>> chinese), I've got the exception: >>> "FileSink: error opening file for writing: D:\Project\Crypto\测试 >>> \privkey.txt" >>> But it's well run in ascii environment. >>> >>> And then, I found out that something's wrong in function wbstowcs_s() >>> in STL class fstream as the default local setting is C-Locale. So I >>> can call function setlocale(LC_ALL, szCodePage) to resolve it, but >>> it's really troubled, isn't it? And the key-problem is, when I use a >>> special CodePage, it cann't work in another CodePage environment! >>> >>> And my project is unicode-based, all the code like "std::string, char >>> [], ..." in Crypto++ may result unpredictable issues. >>> >>> Has CryptoPP got the unicode version? If not, how can I fix the >>> problem? >>> Thanks for your advice... >>> >>> Thanks, >>> Kincorn >>> >>> Development environment: >>> PC x86 >>> Windows XP SP2 >>> Visual Studio 2005- Hide quoted text - >>> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. -~----------~----~----~----~------~----~------~--~---
