There may be situations in which you need to use executable modules (either dynamic link libraries or executable files) created with IBM C and C++ Compilers in combination with those created using VisualAge for C++ Version 3.5 or earlier. In this case, processes that had a single run-time environment when compiled with VisualAge will now have multiple run-time environments, which imposes certain restrictions:
You can overcome these restrictions by using the DLLRNAME utility to forward references to the old run-time environment, to the new run-time environment. To do this, you need to use DLLRNAME to change the older module to use the forwarding DLLs provided with IBM C and C++ Compilers:
| Forwarder Name | Library Type | Forwarder Name | Library Type | |
| CPPYMI36.DLL | Multithreaded | CPPXM36.DLL | Multithreaded | |
| CPPYSI36.DLL | Single-thread | CPPXS36.DLL | Single-thread | |
In the example above, yang.dll is using the single-threaded library from VisualAge for C++ Version 3.5 for Windows. In order for the processes in ying.exe and yang.dll to use the same run-time environment, you would need to issue the following command in DLLRNAME:
dllrname yang.dll cppws35i=cppysi36
If you do not know which run-time environment your module uses, you can rename both libraries with one command:
dllrname your exe/dll cppws35i=cppysi36 cppwm35i=cppymi36
dllrname your exe/dll cppos30=cppxs36 cppom30=cppxm36
After you issue this command, all the processes depend on a single run-time environment:
Demangler
DLLs
If you are using a demangler DLL from VisualAge for C++
Version 3.5, you will have to rename it. The demangler DLL is
CPPRDI36.DLL. The DLLRNAME command is:
dllrname your exe/dll demangli=cpprdi36
![]()
Using Object Files from VisualAge for C++
Version 3.5 or Earlier