Git Product home page Git Product logo

Comments (4)

alvinhochun avatar alvinhochun commented on July 26, 2024

If your application can afford it, you may also consider switching the process ANSI code page to UTF-8 using the application manifest: https://learn.microsoft.com/en-us/windows/apps/design/globalizing/use-utf8-code-page#set-a-process-code-page-to-utf-8

(Only applies since Windows version 1903.)

from drmingw.

jrfonseca avatar jrfonseca commented on July 26, 2024

Yeah, use of ANSI instead of Unicode has been a long standing tech debt...

It's not just ExcHndlSetLogFileNameW, but probably quite a few more internal functions that need changing.

I don't have much time to look into this, but I'd happily accept any PRs.

from drmingw.

Robyt3 avatar Robyt3 commented on July 26, 2024

I can make a PR to fix unicode handling in ExcHndl, including the case that the module file name contains unicode (e.g. if you rename the sample program to "sämple" it will no longer work).

What would be the appropriate prefix for wide char string variable names?

  • const char *szLogFileName - I assume s = string and z = zero-terminated.
  • So for wide char strings should I use const WCHAR *wszLogFileName or also just const WCHAR *szLogFileName?

Should I also extend the tests for ExcHndlSetLogFileNameW? If so, should I further split them into test_exchndl_dynamic_ansi/test_exchndl_dynamic_unicode and test_exchndl_static_ansi/test_exchndl_static_unicode, or should test_exchndl_dynamic and test_exchndl_static each test both the ANSI and Unicode functions at the same time?

from drmingw.

jrfonseca avatar jrfonseca commented on July 26, 2024

Thanks.

I don't think it's common to prefix wide strings with w. I suspect the expectation is that everybody should be using wide char exclusively by now. See https://learn.microsoft.com/en-us/windows/win32/stg/coding-style-conventions

Yes, it would be good to exercise ExcHndlSetLogFileNameW. We don't necessarily need two test executables. For example, we could use one test executable, and then choose ExcHndlSetLogFileName(A|W) via a command line option. Whatever is easiest is fine by me.

from drmingw.

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.