Currently I fixed this by adding 3 IF statements using version() like
if version(2) = 0
toCfg = NEWOBJECT(OUTPUTAPP_CLASS_UTILITYLISTENER, ;
OUTPUTAPP_BASELISTENER_CLASSLIB )
else
toCfg = NEWOBJECT(OUTPUTAPP_CLASS_UTILITYLISTENER, ;
OUTPUTAPP_BASELISTENER_CLASSLIB, lcModule)
ENDIF
>Use SYS(16,1) instead of SYS(16,0). Sys(16,1) will return C:\APPDIR\MAIN\MYAPP.EXE is this that you want?
>
>>I have frxoutput.prg and all other compoments included in my application exe file.
>>
>>frxoutput.prg uses the coding style like
>>
>>
PROCEDURE GetConfigObject(toCfg, tXML)
>>
>>lcModule = SYS(16,0)
>>
>>and few lines later passes this directly to NEWOBJECT():
>>
>>toCfg = NEWOBJECT(OUTPUTAPP_CLASS_UTILITYLISTENER, ;
>> OUTPUTAPP_BASELISTENER_CLASSLIB, lcModule)
>>
>>It seems that this causes NEWOBJECT() to fail sometimes.
>>SYS(16,0) called inside exe returns string like
>>
>>PROCEDURE MAIN C:\APPDIR\MAIN\MYAPP.EXE
>>
>>and thus invalid module name is passed to NEWOBJECT()
>>
>>SYS(16) is used in similar ways in other places also.
>>
>>It seems that no careful testing of inclusion report listener code into exe has been performed.
>>
>>How to fix those issues ?
Andrus