-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Small changes #6
Conversation
Remove unused and predefined preprocessor macros. Add /Zc:throwingNew option.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, but why is the project file involved?
Project file changed as a side effect of general clean-up. This is not mandatory for the other changes in this pull request, but still an improvement. Github's online diff tool is awful, it shows the whole file was messed; Visual Studio's internal compare is better. I assume some macro definitions remained from the days before Visual C++ 6.0. The option |
Yes the project files have been converted from VC++6.0 first time on Visual Studio 2008. |
The latest VS still does non-Unicode builds. |
I guess project defaults now have Unicode enabled, so having Debug|Release build configurations that are MBCS, and custom configurations for Unicode, might be anachronistic or just misleading. Maybe it should be the other way round, that's why I thought I should re-create the projects using the latest IDE, so I get default behavior. |
Therea are ANSI builds also. |
Sure, I don't want to break compatibility. Just "refreshing" the project files so they are more suitable for todays IDE's default options. |
By the way, how do you specify ANSI builds with MFC support? |
I guess I had messed up build options and mistakenly substitute MBCS for ANSI builds when I first converted the project files. Now I have a somewhat "bad" release 1.5 that I feel I should either fix or retire. |
It seems you already figured out that ANSI character set is the default. It is either |
Prefer default initialization. Remove unused and predefined preprocessor macros.
Prefer default initialization.
I had a look at default project options and finally decided to merge without |
Thanks for merging. It could be an apprentice project wizard. :) The compiler option in question was recommended in VC++ blog: https://blogs.msdn.microsoft.com/vcblog/2015/08/06/new-in-vs-2015-zcthrowingnew/ For a more lightweight project you could delete the lines This was not for reopening this pull request, but explanation of the reasons behind the changes. |
Thanks irwir for the explanation and the reference. I feel like I have many things to catch up with about Windows desktop programming. Now most of my work is with embedded systems (microcontrollers) and my Windows programming is a bit rusty. I had a look at that MSDN post and I must say I agree with many of the comments: that option should have been documented (1.5 years later nothing changed) and now added to the new IDE (VS2017). It should have also become the default for new projects, but since it is still undocumented of course that could not happen. Go figure why... I left out those changes to project files because I want to fix the last release, and introduce only strictly required changes. I anticipate to refresh all the projects in the future, so I'll make those changes afterwards. I would like to provide builds for ANSI (probably as a sort of "legacy" or "compatibility" option only, maybe a different project?) and Unicode, as well as x86/x64. I would gladly hear any suggestions about the proper way to do that. I don't really like the idea of ending up with "Debug Static Unicode x64" and so on... do you know of a better way? |
To make sure it was not missed, Github sent 4 copies of the latest message to me.
Platform is taken care automatically, no need for It is possible to leave only generic configurations and let users to adjust as required (change platform and character set); but I am not sure that would be a better option. Use of macros such as |
Yes, that is also planned (but I think it will come very slowly now that I ended my holidays). |
Prefer default initialization.
Remove unused and predefined preprocessor macros.
Add /Zc:throwingNew option.