[omniORB] Visual Studio Compiler error in orbOptionsReg.cc [Patch]

Daniel Krügler daniel.kruegler at gmail.com
Fri Oct 14 16:23:44 UTC 2022


Hi,

We recently tried to build omniORB 4.3.0 using VS 2019 under C++20
language conditions (Full compiler conditions below) and got the
following compile error in orbOptionsReg.cc:

orbOptionsReg.cc
orbOptionsReg.cc(55): error C2440: '=': cannot convert from 'const
char [17]' to 'char *'
orbOptionsReg.cc(55): note: Conversion from string literal loses const
qualifier (see /Zc:strictStrings)
orbOptionsReg.cc(74): error C2440: '=': cannot convert from 'const
char [21]' to 'char *'
orbOptionsReg.cc(74): note: Conversion from string literal loses const
qualifier (see /Zc:strictStrings)
orbOptionsReg.cc(93): error C2440: '=': cannot convert from 'const
char [25]' to 'char *'
orbOptionsReg.cc(93): note: Conversion from string literal loses const
qualifier (see /Zc:strictStrings) cl -c -O2 -std:c++20 -Zc:__cplusplus
-D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS
-D_ENABLE_EXTENDED_ALIGNED_STORAGE -DSTRICT -DWIN32 -D_WINDOWS
-DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -DNOMINMAX -MP -EHs -GR -bigobj
-O2 -MD -Zi -DNDEBUG -D_ITERATOR_DEBUG_LEVEL=0 -I.. -I.\..
-I..\..\..\..\include\omniORB4\internal -DUSE_omniORB_logStream
-D_OMNIORB_LIBRARY -DOMNIORB_VERSION_STRING=\"4.3.0\"
-DOMNIORB_VERSION_HEX=0x040300f1
-DCONFIG_DEFAULT_LOCATION=\"C:\\OMNIORB.CFG\"
-DCONFIG_ENV=\"OMNIORB_CONFIG\" -DNTArchitecture -I. -I.
-I..\..\..\..\include -D__WIN32__ -D_WIN32_WINNT=0x0A00 -D__x86__
-D__NT__ -D__OSVERSION__=4 -D_CRT_SECURE_NO_DEPRECATE=1
-Foshared\orbOptionsReg.o -Fdshared\ -TporbOptionsReg.cc
make[3]: *** [../../../../mk/win32.mk:456: shared/orbOptionsReg.o] Error 2
[..]
[ERROR] Command execution failed.

Looking at the offending code location it is surprising that it had
compiled before, because this was never valid C++ since from the
beginning. To be fair: I guess this was only ever seen by Visual
Studio compilers before and it is a rather new development for them to
become more conforming (which is a great development). The fix was
rather simple, I attached a patch file, after its application we could
successfully build and run the rest.

Speaking of code contributions and patches: I recently found that a
stub github project exists for omniORB
(https://github.com/omniorb/omniorb). Can we expect a complete
migration to github in the near future? It would IMO make it much
easier for others like me to actively contribute to its development.

Thanks, Duncan and coworkers, for your great product that we are now
using for about two decades!

Regards,

- Daniel
-------------- next part --------------
@@ -49,7 +49,7 @@ static void parseOldConfigReg(orbOptions& opt, HKEY rootkey);
 CORBA::Boolean
 orbOptions::importFromRegistry() {
 
-  char* rootregname;
+  const char* rootregname;
   HKEY  rootkey;
 
   rootregname = NEW_REGKEY;


More information about the omniORB-list mailing list