Hi Folks,
My Windows 10 updated today (was very insistent), and because I’ve never had trouble previously (in terms of Clarion + Development), I let it happen.
Am running Clarion 10.12463.
Having an incredibly hard time creating a new exe app with dictionary. Seems to be throwing exceptions at every point. If I add the dictionary and it has alias files, exception. If I try and compile with StringTheory extension, exception. Then it’ll work past that, but when I try and add a Source procedure, boom, exception.
Example (from right now).
App + Dictionary. Main (Frame) has been added, and compiles.
-
Add StringTheory global. Compiles okay.
-
Add a source procedure and click the save button. EXCEPTION on saving the procedure (just saving it, no code, nothing else):
Exception occurred at address 12C46BE1
Exception code C0000005: Access Violation
Process PID=12772 Image: C:\Clarion10\bin\Clarion.exe
Thread 2 Handle=00000A0C TID=11564
Exception parameters:
00000000
00000000
EAX=00000000 EBX=157EC414 ECX=0000000E EDX=2112BC48
ESI=2112BC48 EDI=157EC414 EBP=157EC604 ESP=157EC3D4
EIP=12C46BE1 FLG=00010287
Call Stack:
12C46BE1
12CD5B07
12CCE75B
12C9E8BF
0A9ED0D1
77CD2EC0
77CD2E90
This could be bad. I can’t update Clarion 10 for fear of SQL monsters. And presumably it’s going to be a real problem to go back to a previous windows.
Any thoughts?
My hope is that I’ve just stumbled across some Clarion 10 (the above version) peculiarity. A far hope.
EDIT #1
- Cleaned out the app folder.
- Created new app, no dictionary.
- Created “Main” as an MDI Frame proc.
- Compiled okay.
- Created source procedure, “Debug”. Pressing save went smoothly. No error.
- Compiled okay.
- Added the StringTheory global extension. Pressing save/okay went smoothly.
- Compiled okay.
- Added “GLO:st1 StringTheory” into a Global Data embed.
- Compiled okay.
- Added a line of code to the “Debug” source procedure, “GLO:st1.Trace(‘huzzah!’)”.
- Compiled okay.
- Called Debug() after window opened in the “Main” procedure.
- Compiled okay.
- DebugView shows the trace.
So at this point it’s pretty clear I can keep doing “non-dictionary” stuff and it will work. Maybe. But anyway.
- Create “app.dct”, an empty dictionary file. Save it. Close dct.
- Open app, go to “Global Properties” and add “app.dct” into the Dictionary File template field.
- Click “Actions” (previously before this testing, when using a filled dct, clicking this button would exception out). Global Properties dialog window opens okay.
- Go to Application Tree and save.
- Compiles okay.
So at this point we have an exe with a dictionary (empty), and it seems to be compiling fine.
- Close app and open dictionary.
- Add a single file with a single “Guid” field, and that field as the PK.
- Save and close dct. Okay at this point.
- Open app and compile.
- Compiles okay.
- Go to Global Properties, open dialog, go to “File Control” and tick “Generate all file declarations”. Click OK. Go back to Application Tree and compile.
- Compiles okay.
- Close app and open dct.
- App a “GLO” Globals entity and add a single field, “st1” which is CLASS -> StringTheory.
- Save and exit dct.
- Open app and remove the global data embed for GLO:st1.
- Compiles okay.
- Now add a browse of the tps file in the dictionary (only has a Guid field, but that’s okay). Call the browse from the main app on window opening.
- Compiled okay. TPS file is created in app folder as expected.
Alright. So it’s not breaking. Now we step it up a notch.
- Open the dct and add another global object PATH, with a single field being the name of the single file in the dct.
- Set the path value for the file in the dct to !PATH:.
- In the “ProgramSetup” global embed for the app set the global PATH: field value (i set it to just be the name of the file).
- Compiles okay. TPS file created in app folder as expected.
- Add FM3 global extension. No exception, saves okay. Compiles okay.
- Move the setting of the global PATH field into the FM3 init embed.
- In the dct, add the FM3 “Version” template field to the single tps file.
- App compiles fine and okay and everything. Now I’m really starting to wonder what happened previously to this (very one by one) testing.
- In the dct, following the FM3 rules, add a single field to the file.
- Add in the “ABC Defaults” global extension from Capesoft.
- Compiles fine. FM3 upgrade runs fine.
TL;DR - I must have been doing “too much” at once with the dct + extensions on a new app and Clarion couldn’t handle it.
TL;DR #2 - Not sure if my problems previously have anything to do with the Win 10 update (may have been coincidental).