TUX - Problem to support .NET C++ compiler
(Doc ID 775158.1)
Last updated on JANUARY 19, 2018
Applies to:Oracle Tuxedo / Tuxedo / all
Information in this document applies to any platform
DESCRIPTION: If a Tuxedo application server is built using .NET C++ (vc7.0) compiler, the application can not use stdin/stdout/stderr, all the messages written to them are lost. The issue is a simple one of a mixing of the versions of the C-Runtime. The BEA library is linked with the 6.0 Version of the C-Runtime (MSVCRT.DLL) and the application server binary is linked with the 7.1 version of the C-Runtime (MSVCR71.DLL). Both of these DLLs have their own global variables and heap. Among these global variables are stderr, stdout, and stdin. Conflict between stdin/stdout/stderr loaded from different C-Runtime that exist in different heap could cause unexpected behaviors. This problem does not happen when mixing VC 5 and VC 6 because the name of the C-Runtime stayed the same and only one copy got loaded. This, however, caused a whole host of other issues, according to Microsoft support, and for that reason they decided to move to naming the C-Runtime with the version number and that is the way that it will be from here on out. Microsoft does not guarantees that the 6.0 and 7.x CRT are binary compatible.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!