Comments (5)
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.
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.
@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.
@GiovanniDicanio Thank you for info.
from winreg.
@mersadk I'm glad of being of some help. Thank you for your interest in this repository.
from winreg.
Related Issues (20)
- No-exception routines HOT 6
- Allow to build dll HOT 8
- TryOpen was removed? HOT 2
- Any plan to provide XML document comments or Doxygen? HOT 1
- Change "namespace detail" to "namespace winreg::detail"? HOT 3
- Default to 64-bit registry for 32-bit applications on 64-bit OS HOT 3
- TryGetMultiStringValue only returns the first value HOT 8
- key.TryOpen results in access denied unless FullControl is granted to user. Even if read is enabled for the user. HOT 1
- Organize repository files HOT 1
- Clarify C++ standard HOT 2
- Open Source and Commercial Users of WinReg HOT 3
- Distribution question: winreg or winreg/winreg.hpp HOT 2
- Need function TryQueryValueType HOT 3
- Add save setters HOT 2
- noexcept TryGet/TrySet API consistency HOT 4
- Add validation for zero-length binary values HOT 2
- mingw build error HOT 2
- Is it possible to delete a registry key? HOT 1
- open HKEY_LOCAL_MACHINE\SOFTWARE fail HOT 1
- How to query whether a certain item exists HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winreg.