Page 1 of 2
Differences between 6.1 5.73
Posted: Tue Apr 30, 2024 2:19 pm
by kinglestat
Is there an official list of the differences between these 2 versions? I had code which worked well, and now it doesn't
Re: Differences between 6.1 5.73
Posted: Tue Apr 30, 2024 2:29 pm
by mk-soft
See PB Help History.
Error message when compiling ?
Where is the problem?
Re: Differences between 6.1 5.73
Posted: Tue Apr 30, 2024 3:44 pm
by kinglestat
no errors when compiling
crashes when ran....hence my question
It is a compiler, and quite difficult to isolate where the issue comes from which is why I didn't post any code
Re: Differences between 6.1 5.73
Posted: Tue Apr 30, 2024 4:12 pm
by Fred
You can check if you have '.l' where pointer or '.i' should be needed, it's probably the most relevant change if you encounter a crash
Re: Differences between 6.1 5.73
Posted: Tue Apr 30, 2024 4:12 pm
by mk-soft
Secure storage management is now used. This means that IDs or handles can be larger than 32 bits.
So if you use ID's or handles as long (.l) in the programme, problems will occur. You must use integer (.i) (which has always been the case)
Re: Differences between 6.1 5.73
Posted: Tue Apr 30, 2024 5:07 pm
by juergenkulow
Re: Differences between 6.1 5.73
Posted: Wed May 01, 2024 6:07 am
by kinglestat
I am using .l some place. Will check that out
Re: Differences between 6.1 5.73
Posted: Wed May 01, 2024 7:34 am
by BarryG
Fred wrote: Tue Apr 30, 2024 4:12 pm
You can check if you have '.l' where pointer or '.i' should be needed, it's probably the most relevant change if you encounter a crash
This was my experience. I switched to ".i" in several places and my app is rock-solid again now. I only compile as 64-bit now as well.
Re: Differences between 6.1 5.73
Posted: Wed May 01, 2024 9:51 am
by jacdelad
No offence and obviously many people do/did this, but what makes/made you use .l instead of .i? The help is (more or less) clear about handles and addressing, plus it is a bit extra work to add ".l" instead of leaving the suffix completely (and automatically choose the right one)?
I'm not asking to feel superior, this is a serious question (please don't hurt me!).
Re: Differences between 6.1 5.73
Posted: Wed May 01, 2024 10:08 am
by BarryG
Mine was back in the days when I was compiling 32-bit only, and ".i" didn't exist back then (it was introduced in v4.30 in 2008, so 16 years ago). My first PureBasic was v2.40, so I've been using it for over 23 years now.
Plus I was using other people's code from these forums where they accidentally used ".l" instead of ".i" and I just was copy/pasting and not knowing they had it wrong.
And (correct me if I'm wrong) some API structures still actually require ".l" for some flags?
Re: Differences between 6.1 5.73
Posted: Wed May 01, 2024 10:59 am
by mk-soft
BarryG wrote: Wed May 01, 2024 10:08 am
And (correct me if I'm wrong) some API structures still actually require ".l" for some flags?
That is correct. The API structures use a lot of DWord (PB Long). Therefore it was a lot of work to rewrite the structures from 32 bit to 64 bit.
Re: Differences between 6.1 5.73
Posted: Wed May 01, 2024 4:37 pm
by jacdelad
Yes, a lot of Windows APIs need .l, not .i
I didn't realize the .i was introduced so late (though it's already been a while), I joined with 5.11.
Re: Differences between 6.1 5.73
Posted: Thu May 02, 2024 6:19 am
by AZJIO
I found the "
Migration guide" section, but there is nothing there for new versions
Re: Differences between 6.1 5.73
Posted: Thu May 02, 2024 5:12 pm
by netmaestro
jacdelad wrote:No offence and obviously many people do/did this, but what makes/made you use .l instead of .i?
In the early days there was no .i type. That's how the habits were formed.
Re: Differences between 6.1 5.73
Posted: Thu May 02, 2024 5:22 pm
by boddhi
And some PB functions, like Date(), didn't need .i, only .l, until PB 6.10 regardless 32 or 64-bit OS.
I think that many codes using these functions should no longer work for this reason too.