TUX - Problem to support .NET C++ compiler
(Doc ID 775158.1)
Last updated on SEPTEMBER 14, 2023
Applies to:
Oracle Tuxedo - Version 6.4 and laterInformation in this document applies to any platform.
Information in this document applies to any platform
Goal
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.
Solution
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Goal |
Solution |