Make UFO error?


Compiled with 11.1 (latest build). On some PCs application generates an error message like “Make UFO error”, it’s intermittent. On other PCs - run smoothly with no problem.

What can be a problem?? First time I see this error…

I havent seen this error myself, but I have seen in virtual pc’s what can best be described as lagging on the hard drive. So I could set something, compile a program or make some change to code and its not saved the change properly so when I recompile I get the same error message. This forces me to go back and click save again, or toggle a setting again. Its intermittent, but my pc does also periodically freeze for no reason.

So are you running your C11.1 instance in a virtual pc?

No, Windows10 PC - just normal notebook… newer seen this error before

Did you verify the correct version of Clarion runtime and 3rd party DLLs?

not sure if it can affect but I have EXE only application, no dll

But your EXE will link in sections from the DLL, so @jslarve point is still valid.

I found this mention of UFO as a data type on PaulA website. Original posts here.

The info on PaulA site is old as it refers to 16bit windows calls like
_llseek function (winbase.h) - Win32 apps | Microsoft Learn
_lread function (winbase.h) - Win32 apps | Microsoft Learn

but new enough for the new data types. Its interesting UFO is considered a datatype. I’m also well aware these CPU’s dont know what instructions they should be running, hence the existence of program code, so in some respects they are like an evolved telephone exchange, occasionally they get a crossed wire, which could explain the randomness you see. MS does make it easier, by giving each program its own little sandbox to play in, but its not foolproof.

checked and found that we have Clarion 11 – 13815 build and In-Memory 13758

It works in general but not sure if it can cause a problem…

I don’t have those version so I dont know, all you can do is get rid of it and try again, that is in a way Darwinism in a computer sense.

1 Like

LOL, sure! :rofl: :rofl:

This error means that some unknown/unexpected type code has been passed to a function which builds an UFO object for some variable or field. Most probably, the CLEAR function is called for a structure passed from another DLL without or with incorrectly built type descriptor string.

the problem is that the same application in Clarion 10 was working without any errors like this. But compiled in Clarion 11 and it gives a floating UFO error…

The only change in implementation of UFOs since C7 to C11 is another method of calculation of the hash value for BSTRING values.

What does “application generates” means? Is it your own error handler like

if errorcode()

or is it some ABC class’ error handling? It’s been 6 days since you’ve posted this, I believe you found some useful details.

I meant: the application runtime when it crashes shows an error message itself.

And I found nothing - this is a floating random error. Can’t reproduce it.

Debug version of Clarion runtime (ClaRUN.dll or CLARUNL.LIB) could provide more info in crash dialog.

I’ll add this to this thread.
So on the point that the structure of UFO changes, in the EXP file of a simple project exe, there will be references to UFO, namely
C[ver]runx:Cla$FreeUfo 405064
C[ver]runx:Cla$Mem2ufo 40506C

So it might be possible to work out what the UFO structure is by sending different data type values to it and see how its handled with any result that come. I havent tried this myself, but I think it would be possible to do it.