Discussion:
1.72+ don't run on my Windows 95 ("missing export KERNEL32.DLL:IsDebuggerPresent")
Davide Vecchi
2007-06-24 12:37:10 UTC
Permalink
While I haven't had any such problem up to 1.71 included, I just noticed
that 1.72, 1.73 and 1.74 won't run on my Windows 95 first edition system
(Win95 v. 4.00.950 B, IE 5.5.50.4807.2300): as soon as I launch an
executable which is linked to SciLexer.dll, I get the error "File
SCILEXER.DLL is linked to the missing export
KERNEL32.DLL:IsDebuggerPresent".

I couldn't find any reference to this in the mailing list archive. I
know that Win95 doesn't support IsDebuggerPresent, and I'm wondering if
the call to it is just a leftover or it has to stay there.

Davide Vecchi
Jeffrey Ren
2007-06-25 00:22:44 UTC
Permalink
Is Scintilla v1.72 compiled with VS2005?
I know the executable file from VS2005 will not run in 95 OS because of
IsDebuggerPresent question.

Jeffrey Ren
Reply-To: Discussion of the Scintilla editing
Subject: [scintilla] 1.72+ don't run on my Windows 95 ("missing
exportKERNEL32.DLL:IsDebuggerPresent")
Date: Sun, 24 Jun 2007 14:37:10 +0200
While I haven't had any such problem up to 1.71 included, I just noticed
that 1.72, 1.73 and 1.74 won't run on my Windows 95 first edition system
(Win95 v. 4.00.950 B, IE 5.5.50.4807.2300): as soon as I launch an
executable which is linked to SciLexer.dll, I get the error "File
SCILEXER.DLL is linked to the missing export
KERNEL32.DLL:IsDebuggerPresent".
I couldn't find any reference to this in the mailing list archive. I know
that Win95 doesn't support IsDebuggerPresent, and I'm wondering if the call
to it is just a leftover or it has to stay there.
Davide Vecchi
_______________________________________________
Scintilla-interest mailing list
http://mailman.lyra.org/mailman/listinfo/scintilla-interest
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/
Neil Hodgson
2007-06-25 00:39:53 UTC
Permalink
Post by Jeffrey Ren
Is Scintilla v1.72 compiled with VS2005?
I know the executable file from VS2005 will not run in 95 OS because of
IsDebuggerPresent question.
I think this was around the time I started using VS2005 for
releases. There is no explicit call to IsDebuggerPresent in Scintilla
so I expect it is part of the C/C++ runtime. Best to rebuild with an
older compiler/linker. If someone wants to maintain a version for
Windows 95 then I'll add links from the scintilla.org site.

Neil
Davide Vecchi
2007-06-25 21:26:58 UTC
Permalink
Thanks everybody for the feedback and suggestions. Lack of Win95 support
in my app isn't a big problem, I just try to keep old systems alive for
testing. I just wanted to know more about that, and now I know what to
do if I want a build which runs on 95; thanks.
Jeffrey Ren
2007-06-26 00:13:24 UTC
Permalink
Yes, IsDebuggerPresent is from CRT library in VC2005.
It seems that no method can avoid this except rebuild CRT library.
So better solution may be to supply a compatible release with VC 6 or
VC2003.
Reply-To: Discussion of the Scintilla editing
To: "Discussion of the Scintilla editing
Subject: Re: [scintilla] 1.72+ don't run on my Windows 95
("missingexportKERNEL32.DLL:IsDebuggerPresent")
Date: Mon, 25 Jun 2007 10:39:53 +1000
Post by Jeffrey Ren
Is Scintilla v1.72 compiled with VS2005?
I know the executable file from VS2005 will not run in 95 OS because of
IsDebuggerPresent question.
I think this was around the time I started using VS2005 for
releases. There is no explicit call to IsDebuggerPresent in Scintilla
so I expect it is part of the C/C++ runtime. Best to rebuild with an
older compiler/linker. If someone wants to maintain a version for
Windows 95 then I'll add links from the scintilla.org site.
Neil
_______________________________________________
Scintilla-interest mailing list
http://mailman.lyra.org/mailman/listinfo/scintilla-interest
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
Robert Roessler
2007-06-26 00:46:19 UTC
Permalink
Post by Jeffrey Ren
Yes, IsDebuggerPresent is from CRT library in VC2005.
It seems that no method can avoid this except rebuild CRT library.
So better solution may be to supply a compatible release with VC 6 or
VC2003.
Reply-To: Discussion of the Scintilla editing
To: "Discussion of the Scintilla editing
Subject: Re: [scintilla] 1.72+ don't run on my Windows 95
("missingexportKERNEL32.DLL:IsDebuggerPresent")
Date: Mon, 25 Jun 2007 10:39:53 +1000
Post by Jeffrey Ren
Is Scintilla v1.72 compiled with VS2005?
I know the executable file from VS2005 will not run in 95 OS because of
IsDebuggerPresent question.
I think this was around the time I started using VS2005 for
releases. There is no explicit call to IsDebuggerPresent in Scintilla
so I expect it is part of the C/C++ runtime. Best to rebuild with an
older compiler/linker. If someone wants to maintain a version for
Windows 95 then I'll add links from the scintilla.org site.
Or you could just do what Microsoft expects you to do and use the
NewAPIs.h file from the Platform SDK... :)

This allows you to add a define for WANT_ISDEBUGGERPRESENT_WRAPPER in
ONE of your app's source files (presumably before an include of this
header file) and a stub will be defined for you.

If you want a solution that does not involve the Microsoft toolchain
and/or the Platform SDK, just handcraft your own stub conditionalized
on something like "ADD_WIN95_STUB_SUPPORT".

Robert Roessler
***@rftp.com
http://www.rftp.com
Jeffrey Ren
2007-06-27 00:36:03 UTC
Permalink
It sounds a good solution. Did you tested this with newapis.h solution from
platform sdk in win95?

Jeffrey Ren
Reply-To: Discussion of the Scintilla editing
To: Discussion of the Scintilla editing component
Subject: Re: [scintilla] 1.72+ don't run on my
Windows95 ("missingexportKERNEL32.DLL:IsDebuggerPresent")
Date: Mon, 25 Jun 2007 17:46:19 -0700
Or you could just do what Microsoft expects you to do and use the NewAPIs.h
file from the Platform SDK... :)
This allows you to add a define for WANT_ISDEBUGGERPRESENT_WRAPPER in ONE
of your app's source files (presumably before an include of this header
file) and a stub will be defined for you.
If you want a solution that does not involve the Microsoft toolchain and/or
the Platform SDK, just handcraft your own stub conditionalized on something
like "ADD_WIN95_STUB_SUPPORT".
Robert Roessler
http://www.rftp.com
_______________________________________________
Scintilla-interest mailing list
http://mailman.lyra.org/mailman/listinfo/scintilla-interest
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
Robert Roessler
2007-06-27 00:52:28 UTC
Permalink
Post by Jeffrey Ren
It sounds a good solution. Did you tested this with newapis.h solution
from platform sdk in win95?
Testing? You want TESTING at these prices? :)

No, I just found the file while doing a search on IsDebuggerPresent in
my include trees... and read the detailed comments it contained (the
file EXISTS to handle this and a few other related problems).
Post by Jeffrey Ren
Reply-To: Discussion of the Scintilla editing
To: Discussion of the Scintilla editing component
Subject: Re: [scintilla] 1.72+ don't run on my Windows95
("missingexportKERNEL32.DLL:IsDebuggerPresent")
Date: Mon, 25 Jun 2007 17:46:19 -0700
Or you could just do what Microsoft expects you to do and use the
NewAPIs.h file from the Platform SDK... :)
This allows you to add a define for WANT_ISDEBUGGERPRESENT_WRAPPER in
ONE of your app's source files (presumably before an include of this
header file) and a stub will be defined for you.
If you want a solution that does not involve the Microsoft toolchain
and/or the Platform SDK, just handcraft your own stub conditionalized
on something like "ADD_WIN95_STUB_SUPPORT".
--
Robert Roessler
***@rftp.com
http://www.rftp.com
Sune Marcher
2007-06-25 13:03:48 UTC
Permalink
It might be worth trying to link the scintilla DLL with
/DELAYLOAD:KERNEL32.DLL and see if this fixes it (I can't remember
whether delay-load loads all imports from a DLL once a single import
is necessary, or if it loads all imports lazily).

An alternative would be hunting down the IsDebuggerPresent call in the
CRT and building a version that doesn't include it - VS2005 comes with
the CRT source code.

The last fix would be hexediting the name to some other innocent
no-parameter function in kernel32... the function only seems to be
called if there's an exception anyway.
--
Best regards,
Sune Marcher <***@flork.dk>
Loading...