Just to be sure I have my understanding correct related to variables (i.e. Global)
If I have a global variable, and I have the Thread turned on, and I am running two different instances of the same exe (Like double clicked on the short cut two different times), then these two different inistances of the .exe running have totally seperate memory stacks and, there is now way that GlobalVariable1 in the first running of the EXE could be updated or updating GlobalVariable1 in the second running of the EXE correct?
Thanks for the confirmation. That is what I thought. I have a user reporting that two different report runs to PDF are being ‘combined’ but only when running in separate instances of the exe. This user is a pretty tech savvy user so, I thought there might be something to it.
I suppose that could conceivably happen if the temp WMF files created by the two instances of the report had the same names since they’d be in the same user’s TEMP folder.
Might need the temp folder to be emptied. Clarion pdf is made up of wmf files in the temp folder and the naming might possibly overlap iff its big and the files already exist
If this is what’s happening, perhaps PROP:TempNameFunc would be something to look into, to ensure that the wmf files are kept within their process’s purview only
To be sure, there is the option to run a process in seperate memory space. You can do this with Clarion and then run multiple instances of clarion provided the template is set to ReadOnly, because the TemplateRegistry.trf file is opened shared, but thats a file and not a global var.
Saying that, here is how a normal exe should work.
The virtual address space for a process is the set of virtual memory addresses that it can use. The address space for each process is private and cannot be accessed by other processes unless it is shared.
I’ve just looked and Run in seperate memory space is ticked and disabled in windows icons pinned to the task bar. So I’ve just loaded a second instance of c11 and its not borked the registry so this must be fixed now because it used to bork the registry in an early version of c7 when I last tried.
So that option to load the dct and registry as readonly, is it now surplus to requirement or is it still needed for the dct?
Is it just a few pages duplicated … sometimes … then see below topic.
If it’s a lot of pages and always then as Jane noted it’s likely bad code loading the WMF’s maybe with Directory() rather than using the Report Preview(Q).
If you are going to print large Clarion reports you should regularly run a program on end-user PC’s to clean orphan WMF’s out of the Windows Temp folder. As you fill it up Reports run slower then fail to run.
This might happening if this bitmask option is being used.
CS_CLASSDC
Chen doesnt mention IF it could be happening across multiple processes (applications), so this might or might not be the cause, but I wouldnt be surprised if it is. You’ll have to step into the Debugger’s dissembly window to find out if its being used and remember we came from a 16bit world, so there might be left overs…