Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2018-04

Lazarus - Windows NT4

10 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Graeme Geldenhuys
to Reinhold
Reinhold wrote 6 lines
I compiled a lazarus project with lazarus 1.8.0 and 1.8.2. This error occurs (s. appendix): With 1.6.4 is no problem. Is this a bug, or is Win NT4 out of time?

It's not so much about Lazarus as far as I know, but more about which version of FPC (the compiler) you are using. You can install different versions of FPC and use them all with the same copy of Lazarus - I do this all the time.

You probably need FPC 2.6.x or FPC 2.4.x to support NT4. I'm sure the wiki will tell you when which Windows versions got dropped. Search the wiki for the FPC changelogs.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Sven Barth
to Graeme Geldenhuys

Graeme Geldenhuys via Lazarus schrieb am
Fr., 6. Apr. 2018, 20:29:

Show quoted text 17 lines
On 2018-04-06 16:26, Reinhold via Lazarus wrote: > I compiled a lazarus project with lazarus 1.8.0 and 1.8.2. This error > occurs (s. appendix): > > With 1.6.4 is no problem. > > Is this a bug, or is Win NT4 out of time? It's not so much about Lazarus as far as I know, but more about which version of FPC (the compiler) you are using. You can install different versions of FPC and use them all with the same copy of Lazarus - I do this all the time. You probably need FPC 2.6.x or FPC 2.4.x to support NT4. I'm sure the wiki will tell you when which Windows versions got dropped. Search the wiki for the FPC changelogs.

If you'd look at the screenshot you'd see that the function FlashWindowEx is missing. That one is not used by the RTL or the FCL and thus must be used by the LCL.

Note: to check if other functions are missing as well you can use the Dependency Walker (google it) *on* the system in question with the binary in question.

Regards,
Sven

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20180407/a022ca87/attachment-0001.html>

Reply by email

Mark Morgan Lloyd
to Graeme Geldenhuys: It's not so much about Lazarus as far as I know, but more about which version of FPC (the…
Graeme Geldenhuys wrote
On 2018-04-06 16:26, Reinhold via Lazarus wrote:> I compiled a lazarus project with lazarus 1.8.0 and 1.8.2. This error > occurs (s. appendix):> > With 1.6.4 is no problem.> > Is this a bug, or is Win NT4 out of time? It's not so much about Lazarus as far as I know, but more about whichversion of FPC (the compiler) you are using. You can install differentversions of FPC and use them all with the same copy of Lazarus - I dothis all the time. You probably need FPC 2.6.x or FPC 2.4.x to support NT4. I'm sure thewiki will tell you when which Windows versions got dropped. Search thewiki for the FPC changelogs.

I agree, with the caveat that each version of Lazarus tends to work with a fairly tight range of compiler versions.

I can't give accurate version numbers without spending time looking things up, but somewhere around 2.6.x FPC started assuming Unicode handling that was documented but unimplemented in NT4. At that point there was a simple patch which could be applied to the RTL (?) to fix it, but realistically it made that version the last that supported NT (and I suspect '98).

I appreciate that some people have no choice but to use NT4, typically because it is running on rack-mounted "industrial computers" or similar. But I'd suggest that wherever there is a choice it would be better to look at W2K if at all possible, which while still well out of support at least doesn't "self destruct" like XP. At the very least, use W2K for development and then test on NT4.

18803 is relevant but might not be the only issue.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Graeme Geldenhuys
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote
At the very least, use W2K for development and then test on NT4.

I still to this today. Win2000 is my default Win32 development environment (when using FPC) - running in a VM of course. No nag screens, no constant license checks, super low on resources, small install and rock solid. :) It's by far my favourite Windows version of all times.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Graeme Geldenhuys
to Bart
Bart wrote 5 lines
> If you'd look at the screenshot you'd see that the function FlashWindowEx is > missing. That one is not used by the RTL or the FCL and thus must be used by > the LCL. ($lazarus)\lcl\interfaces\win32\win32callback.inc appr at line 850

According to MSDN

https://msdn.microsoft.com/en-us/library/windows/desktop/ms679347(v=vs.85).aspx

it doesn't look like a very important/critical API call (introduced in Windows XP). So maybe the original poster can comment out that call in LCL-Win32, then recompile LCL and his app and see how it goes. With some luck in might work.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Bart
to Graeme Geldenhuys
Graeme Geldenhuys wrote
it doesn't look like a very important/critical API call (introduced in Windows XP). So maybe the original poster can comment out that call in LCL-Win32, then recompile LCL and his app and see how it goes. With some luck in might work.

IIRC this is about 1.8?
Then if I understand the release notes correctly, the NT 4 platform is not supported anymore.

Bart

Reply by email

Graeme Geldenhuys
to Bart
Bart wrote
Then if I understand the release notes correctly, the NT 4 platform is not supported anymore.

I point was, that if the NT4 support is broken simply because LCL-Win32 is now using the FlashWindowEx API, then it is pretty easy to resolve. Simply comment out the FlashWindowEx usage - it's not a vital API anyway. It simply flashes the application titlebar (actually the icon in the taskbar - if memory serves me) to draw the end-users attention to the application.

But like I also mentioned... "you might be lucky" in that that is the only non NT4 API. If you are not so lucky, then there might be other API's that also break NT4 support. In which case it might be worth using an older LCL version for that application, or adding IFDEF's to LCL-Win32 to keep NT4 support going for a while longer. The amount of effort is up to the original poster of this thread.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Mark Morgan Lloyd
to Graeme Geldenhuys
Graeme Geldenhuys wrote
But like I also mentioned... "you might be lucky" in that that is theonly non NT4 API. If you are not so lucky, then there might be otherAPI's that also break NT4 support. In which case it might be worth usingan older LCL version for that application, or adding IFDEF's toLCL-Win32 to keep NT4 support going for a while longer. The amount ofeffort is up to the original poster of this thread.

There's actually two cases here. The first is where a statically-linked entry point is not available, which can only be fixed by an IFDEF.

The second is where a function is available but not fully implemented, and where the caller- i.e. code written by an FPC or Lazarus contributor- isn't checking for an error in an ill-considered attempt at efficiency.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email