Author Topic: Couatl64_P3D.exe - Entry Point Not Found **WINDOWS 7 is no longer supported**  (Read 13387 times)

achmedfsx

  • Newbie
  • *
  • Posts: 42
After reading some hours about umbrella libs and API sets, my picture of the problem is as follows:
- the program Couatl64_P3D.exe references Windows libs as kernel32.dll, user32.dll, oleaut32dll, ole32.dll...
- it references also the API set libraries api-ms-...dll, including the problem dll "api-ms-win-downlevel-ole32-l1-1-0.dll"
- KB2952664 delivers a newer "api-ms-win-downlevel-ole32-l1-1-1.dll" that contains the missing error GetErrorInfo
  but installs it to C:\Windows\System32\CompatTel (only for telemetry, not in the Windows default search paths).
- Lib 1.1.0 is a subset of 1.1.1
- Tthe newer lib 1.1.1.dll isn't t referred as the higher level libs and also Couatl64_P3D.exe refer to the older 1-1-0.dll

What worked for me (Win 7-64 Pro with last fixes, P3D 4.5 HF2) - revised 23.2.22:
- Don't touch anything below C:\Windows !
- Check C:\Windows\System32\CompatTel\api-ms-win-downlevel-ole32-l1-1-1.dll
  if it's missing: download KB2952664 from MS Update Catalog
- Copy C:\Windows\System32\CompatTel\api-ms-win-downlevel-ole32-l1-1-1.dll to the folder where your couatl64_P3D.exe lies.
- Copy couatl64_P3D.exe as backup
- Search in the original couatl64_P3D.exe with a Hex-Editor (e.g. HxD for the unicode string "api-ms-win-downlevel-ole32-l1-1-0.dll",
  (at Feb 2022 around 0x16C47C) and change the last zero to 1
- Now you should see the string as "api-ms-win-downlevel-ole32-l1-1-1.dll" - save couatl64_P3D.exe.
- Start P3D and click OK in the "Couatl has been modified...virus..." message.

« Last Edit: February 23, 2022, 07:00:20 pm by achmedfsx »

virtuali

  • Administrator
  • Hero Member
  • *****
  • Posts: 51400
    • VIRTUALI Sagl
may it be possible in  a future update of Couatl64_P3D to check for Windows Version 7 and - in this case -
to explicit load library "api-ms-win-downlevel-ole32-l1-1-1.dll" (LoadLibrary, GetProcAddress) before the (new) GetErrorInfo call ?

Not possible, I just checked it: we are not even calling GetErrorInfo from our code, we inherited from another library we linked the program with which we don't have any source code.

Quote
- Check/install KB2952664 -> delivers C:\Windows\System32\CompatTel\api-ms-win-downlevel-ole32-l1-1-1.dll
- Add C:\Windows\System32\CompatTel to the Windows search path

It should work better, and easier to do, if you just copy this library to the Addon Manager\Couatl64 folder and SET IT TO READ-ONLY, otherwise a Live Update will remove it. Windows always search the path of the application itself for any required .DLL, before trying anything else.

olseric

  • Newbie
  • *
  • Posts: 24
I know that there may appear more incompatibilities in future, but it would be a workaround at the moment.
So I tried everything that you did...and I see that all of my FSDT stuff is now unregistered.  When I went to re-enter the serials, I got a nice message saying "The Couatl scripting engine hasn't started."

So, now, I can't even register them back to get the scenery working.

--EDIT:  Tried the new installer link provided pinned at the top of the forum.  Shows all products activated.--
« Last Edit: February 19, 2022, 11:58:35 pm by olseric »

olseric

  • Newbie
  • *
  • Posts: 24
- Start P3D and click OK in the "Couatl has been modified...virus..." message.
I think mine is failing at this point.  It seems that when the CHECKUM doesn't match, it causes it to abort the process.

virtuali

  • Administrator
  • Hero Member
  • *****
  • Posts: 51400
    • VIRTUALI Sagl
I think mine is failing at this point.  It seems that when the CHECKUM doesn't match, it causes it to abort the process.

Of course it fails. You can't modify the exe, it will quit later because it detected it has been tampered with.

olseric

  • Newbie
  • *
  • Posts: 24
I think mine is failing at this point.  It seems that when the CHECKUM doesn't match, it causes it to abort the process.

Of course it fails. You can't modify the exe, it will quit later because it detected it has been tampered with.
Ok, then enlighten me as to why achmedfsx is able to run it? :)

virtuali

  • Administrator
  • Hero Member
  • *****
  • Posts: 51400
    • VIRTUALI Sagl
Ok, then enlighten me as to why achmedfsx is able to run it? :)

No idea. I would expect the program might start, but it won't work later on.

olseric

  • Newbie
  • *
  • Posts: 24
Ok, then enlighten me as to why achmedfsx is able to run it? :)

No idea. I would expect the program might start, but it won't work later on.
I said, to hell with it, and upgraded to Windows 10.  Guess what...it works. LOL

virtuali

  • Administrator
  • Hero Member
  • *****
  • Posts: 51400
    • VIRTUALI Sagl
I said, to hell with it, and upgraded to Windows 10.  Guess what...it works. LOL

And I'm sure you'll find there's nothing wrong with Windows 10 either, since now it's a mature and well tested system, it still includes some things from Windows 7. In fact, it was Microsoft a bit going BACK to Windows 7 user interface, after the horror of that completely useless tablet-like UI that was Windows 8.

Unfortunately, that old curse which started like a joke, that seem to have every other Windows version being good, with the one in between really bad, still continue to happen.

Windows 3.0 = Bad
Windows 3.11 = Good
Windows 95 = Bad
Windows 98 = Good
Windows ME = really Bad
Windows XP = Good
Windows Vista = Bad
Windows 7 = Good
Windows 8 = Bad
Windows 10 = Good

I have a bad feeling about Windows 11 but, considering it's free, it's likely because it's a so minor upgrade, that it less risky.

Broeder Alarm

  • Newbie
  • *
  • Posts: 2
Windows 7 = Good and has about 100 million users.

So far GSX is the only software that is useless for THIS operation systeem.

A question of good programming (see Boeing)or not.

Happy we are in the flightsim world and not the real one.

Sleep well.


virtuali

  • Administrator
  • Hero Member
  • *****
  • Posts: 51400
    • VIRTUALI Sagl
Quote
Windows 7 = Good and has about 100 million users.

Nobody denies Windows 7 WAS good, it's just way past due its time, and of the 100 millions users, I'm sure they are mostly running older PCs that are not really suited for high-performance "gaming", which is what P3D requires.

And, even if 100 millions users sounds like an high number, it's dwarfed by Windows 10 numbers right now:

https://gs.statcounter.com/os-version-market-share/windows/desktop/worldwide

So yes, Windows 7 WAS good, but all good things ends.

So far GSX is the only software that is useless for THIS operation systeem.

Of the ones YOU tried or YOU are interested in.

We are discussing about P3D right ? Well, you cannot update to P3D V5, for example, because it runs in Windows 10. That's just the first obvious example of something pretty major related to this topic you can't use because you are using a legacy OS.

jimr

  • Newbie
  • *
  • Posts: 7
Have been reading this carefully as am also a Windows 7 user with FSX SP2 because i have it running so well i dont want to touch it for as long as i can. For me the most recent GSX update last week installed without issue and walkin gates is working perfectly but fully accept one day i will get caught out.
One advice at the beginning of the thread was to use a previous installer with internet off if i get the error response to a future update.
Excuse my ignorance on this but when i run live update does a copy of that installer remain on my PC and where would it be located? Is it that that i would use to install a previous version?
Thanks.

p.s. walkin gates is fab....been waiting for this for years....many thanks!

achmedfsx

  • Newbie
  • *
  • Posts: 42
Of course it fails. You can't modify the exe, it will quit later because it detected it has been tampered with.
Seems not to quit here. Did a 2 hours flight yesterday, at P3D start, Couatl complains about being modified maybe by a virus,
I clicked OK on the button in the middle of the window (closing this popup by the X in the upper right disables GSX and XPOI).
Two hours later in LSGG, I called the little car that leads me to the gate.
There I found the marshaller, so it seems, no problem in my environment ?!?.

Or did I miss something ? I don't know much about moving jetways and these things as I fly GA
(my license is GSX, not GSX2, maybe that's the reasing it works in my case ?)
Even if I get the error of the missing GetErrorInfo, P3D comes up and GSX/XPOI work well.
My whole sim installation is outside C:\Program... , maybe that's the reason ?

Now I set all back to the original state.
Moving dll 1.1.1 to the Couatl64_P3D.exe folder and rename to 1.1.0 -> GetErrorInfo not found
Creating a Couatl64_P3D.exe.handle as https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-redirection mentions -> GetErrorInfo not found.
cmd-Window: C:\Windows\System32\CompatTel as first in PATH, then calling Couatl64_P3D -> GetErrorInfo not found

Looking deeper in Couatl64_P3D.exe, I find LoadLibraryA after the lib names (offset ~0016C630):
According to  https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya
a lib can be loaded outside the specifications of https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-search-order.

Some bytes before, in the library list, I find "python27.dll".
So it may be python that loads these libs outside of the normal search order ?

https://www.python.org/downloads/windows/ states "Python 3.9.10 cannot be used on Win 7 or earlier",
but python27.dll seems to belong to an older Python version ? Or just a compat lib in Python 3.9.10

BTW: these Api-ms-win-downlevel... libs are hard links (see "fsutil hardlink"), so copying them on the same drive doesn't create a separate instance but a new hardlink.
 



virtuali

  • Administrator
  • Hero Member
  • *****
  • Posts: 51400
    • VIRTUALI Sagl
You are losing your time digging in Couatl.exe. As I've said in my previous post, I already check this and, WE DO NOT CALL GetErrorInfo!

It must be some of the libraries we link with, and it's not Python. We don't use the regular Python, we use Stackless, and it's not the normal interpreter, is our own version, but we haven't changed *ANYTHING* in our code, other than keeping Visual Studio regularly updated.

I also checked the Windows SDK we compiled the program with, and it's not a very new version, it's a version that should support Windows 7 and, again, it hasn't changed in the last version.

So, as I've said, several times by now, I'm fairly sure one of the normal Windows updates that are released, likely the VC++ redistributable runtimes, that caused the requirement of a newer version of the api-ms-win-downlevel-ole32.dll  which, again, is NOT included in Windows 10, so there must be a way to install it properly in Windows 7, unless is something in between, maybe for Windows 8, I couldn't find a precise answer on when it came out.

olseric

  • Newbie
  • *
  • Posts: 24
Have been reading this carefully as am also a Windows 7 user with FSX SP2
This shouldn't affect you.  The runtimes being called were inside the 64bit environment (P3D4)...which your sim, FSX, is a 32bit application.