The '_declspec' modifier is deprecated since the migration from Win16 to Win32, so by long time.
The correct modifier to be used for modern code is '__declspec', with two underscore characters as prefix.
MSVC can recognize both modifiers and '_declspec' has the same effect of '__declspec', depending on the presence of '/Za' option, which activates/deactivates the language extensions:
https://docs.microsoft.com/it-it/cpp/cpp/declspec?view=vs-2019
Unfortunately, GCC supports only '__declspec', so I recommend to use this one and also MSVC will be able to work indipendently from the language extensions. Since Audacity does not compile on anything less than GCC 4.9, it is not a big problem to use the same thing for _WIN32 in general, not only MSVC, and also Cygwin.
On Windows, the CONST macro is already defined by system include files.
MSVC tolerates that, but this is fatal for GCC.
The CONST macro is unused in this source anyways, so it would be worth to remove it.
FileDialog goes into audacity/src/widgets and the mod-* directories go into
audacity/modules.
This leaves nothing in lib-src that isn't a 3rd-party libs or supporting
files.
... Note that par1str and par2str aren't even shown, but comment out. Yet, I
did the work on them to serve as examples for the future.
Note the use of contexts too. Be aware of case distinctions that some languages
make.
... This includes functions callable from Nyquist but not yet any examples
of strings with context in any .ny files.
This does include some examples of strings with context, and with both plurals
and context, in C++ files. It is not intended to fix possible ambiguities
exhaustively.
Note that wxWidgets 3.1.1 is sufficient to support contexts.
If Audacity is build with wxWidgets 3.0, it will run, but strings with
context will fail to translate.
... also restore the intended meaning of "allowDup" (for debugging checks only),
which had never been properly implemented because the label, not the
accelerator, was scanned for it; see commit f2f7568
I'm not sure exactly when the Window menu started working again,
but when built with wx313, the system provides the Window menu
just fine on all OSX versions from 10.7 - 10.15.