Code Monkey home page Code Monkey logo

Comments (5)

GiovanniDicanio avatar GiovanniDicanio commented on August 24, 2024

I don't have interest in supporting MBCS in 2018 (and complicating my code for that purpose). If you want to support both Unicode and MBCS, you can modify my code and adopt the TCHAR model. That would mean using TCHAR instead of wchar_t, replacing std::wstring with std::basic_string<TCHAR> (or use the CString class, which is already TCHAR-enabled), etc.

from winreg.

mersadk avatar mersadk commented on August 24, 2024

I've forked repository and added support for MBCS. It doesn't complicate anything as I added two aliases at the beginning, replaced string and char classes with those and wrapped most string literals with _T(). It compiles and passes all tests with both Unicode and MBCS. I can create pull request if you are willing to merge it to this repository.

https://github.com/mersadk/WinReg

from winreg.

GiovanniDicanio avatar GiovanniDicanio commented on August 24, 2024

@mersadk: I'm glad you were able to modify my code and adapt it to your MBCS needs. I don't feel I want to merge this TCHAR-based code in this repository, as my preference for today's code is to use Unicode instead of MBCS. I tend to reserve std::string for pure ASCII or UTF-8 (note that ASCII is a proper subset of UTF-8, so this works fine). I feel that those MBCS code bases become "bug factories" when some portions of code assume a given std::string object contains text in code page X, but then you pass it to another section of code that assumes code page Y. It's a dangerous design, while trying to keep the whole code base Unicode, and immediately convert from a given code page to Unicode, feels much safer and higher-quality to me. These days I highly recommend moving legacy MBCS code bases to Unicode: I believe this is a very good and wise investment in code quality.

from winreg.

mersadk avatar mersadk commented on August 24, 2024

@GiovanniDicanio Thank you for info.

from winreg.

GiovanniDicanio avatar GiovanniDicanio commented on August 24, 2024

@mersadk I'm glad of being of some help. Thank you for your interest in this repository.

from winreg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.