Kbase 20576: Proxy Generation Failed - Debugging Error 7246
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  23/04/2010 |
|
Status: Verified
GOAL:
How to debug the ProxyGen error (7246) related when generating an ActiveX proxy
GOAL:
Error 7246: Exception executing <program name>. (7246)
FACT(s) (Environment):
Progress 9.x
Windows
FIX:
1. The first program necessary to generate a proxy for an ActiveX client is the MIDL compiler (midl.exe).
The executable is installed with Visual J++ V1.1 or Visual C++ V5/6. If the file is missing or the directory is not in your PATH, the following is written to the log file:
Exception executing midl.exe //CreateProcess. (7246)
You can verify the correct setting by opening the MS-DOS Command prompt (on Windows NT) and running midl.exe from a directory different from the one that contains the MIDL compiler. In this
case, the compiler responds with the following:
Microsoft (R) MIDL Compiler
midl : command line error MIDL1000 : missing source-file name
Solution:
Locate the midl.exe file on the PC and verify the PATH environment variable.
2. The next executable you need is the C preprocessor.
Depending on the MIDL compiler, the preprocessor can be cl_vj.exe or cl.exe. When Visual C++ is used, the following additional startup option for ProxyGen is required:
/d:ProxyGen.UseMidlFromC++=yes.
In earlier Progress versions (9.0), this option is added to the target field of the ProxyGen icon. In Version 9.1, the parameters were moved to the parameter file %DLC%\proxygen.prm (or proxygen.pf), so the option must be modified there.
For Visual J++, *.idl files from ....\DevStudio\VJ\include must be copied to the ProxyGen working directory, and ...\DevStudio\VJ\include should be added to the INCLUDE environment variable. Another option is to modify the PATH variable to add ...\DevStudio\VJ\Bin and ...\DevStudio\SharedIDE\Bin.
Solution:
Check the correct syntax and location of the startup option; verify the location of the idl files, and the PATH/INCLUDE environment settings.
The MS Windows error message during the generation:
cl.exe - Unable to Locate DLL - The Dynamic link library mspdb60.dll could not be found
means that the directory containing *.dll files associated with the midl.exe is not on the PATH. Depending on the version of C++ you use, the directory can be ...\SharedIDE\bin (V5) or ...\Common\msdev98\bin (V6).
Solution:
Check the PATH environment variable for the presence of the correct directory.
3. If the INCLUDE environment variable does not contain the Visual C++ include directory, the log file contains the entry:
midl : command line error MIDL1001 : cannot open input file oaidl.idl
Solution:
Modify your INCLUDE environment variable.
If MS SDK for Java is not installed or the PATH does not contain it's bin directory, the following message is written to the log file:
Exception executing jexegen.exe //CreateProcess. (7246)