Error on app launch User64.dll

Starting with 2021 r1 I am now getting an error when one of my apps starts in Windows complaining a DLL cannot be found “User64.dll”. When I try to debug to see what is looking for that DLL the error occurs before the app has fully started up so the debugger never flags a problem and I can’t even pause yet at that point. This occurs with built versions as well as running in the debugger.

The exact same code run on or built on 2020 r2.1 using the same plugins (and plugin versions) does not have this issue. Also a brand new app does not have this issue on 2021 r1, so it can’t be a general bug in Xojo but may be a bug in one of the plugins or a specific function I’m using in the problematic app. Unfortunately the only way I know to narrow that down is to remove the reference to each plugin which will be an absolute nightmare to accomplish (the app uses a lot of plugins in a lot of places).

I have tried using 2021r1 and 2021r1.1 IDEs on both Mac and Windows and the same thing happens.

Has anyone else seen this happen or know of a tool or trick that may let me easily isolate the offending code? Process Monitor just tells me my app is looking for it so it doesn’t give anything more helpful.

Do you use any plugins, third-party libraries or components, or anything else other than Xojo code written directly in the IDE by you? I don’t see what version of Windows you’re testing on, either.

I don’t recall there ever being a user64.dll distributed with Windows, and it looks like the 64-bit version of user32 is still called user32 on my up-to-date Windows 10 install. Could be wrong though, I don’t interact with the Win32 API as much as I used to. I definitely don’t see it on my system and can’t locate anything about it in MDN.

Someone did search for 32 and replace it with 64?

Even in Windows 64-bit, the DLL is named User32.DLL

I’m testing against Win 10 Pro 64bit. And no there is definitely no User64.dll anywhere on my machine, nor should there be as from what I could find MS kept the user32 name when they made the functions 64bit compatible.

Yes I am using plugins, and it almost has to be one of them that is the cause since a clean new project that uses none does not have the problem. But isolating them in my code to figure out which one is causing it is going to be a huge undertaking. It is also not a general problem in a plugin as the identical code with identical plugins works fine using Xojo 2020 r2.1. So it must be something about Xojo 2021 that is triggering some bad behavior. I’m thinking it may be some bit of code that automatically tries to change which version of the userXX DLL it wants and is now due to a change in Xojo 2021 it thinks it should look for user64.

I was hoping someone else had already seen this and knew which plugin or whatever was the cause or knew of a tool that would let me identify what specifically was trying to access a user64.dll instead of just “something in my app” so I could root it out without having to spend the next likely couple of days trying to isolate out each plugin to track down the offending one.

Could you just search the whole project for text “User64”?

Did that, nothing in the code is looking for it.