Re: Another Win32lib problem, and this may not be fixable.

new topic     » goto parent     » topic index » view thread      » older message » newer message

Hi Pete, I spent the weekend trying to get it working.

I am more and more convinced that it's a dll issue with winspool.drv.

Used dependency walker to look at the function exports in winspool.drv. Sure enough the suspect functions - those linked in w32spool.ex - are in the driver, BUT winspool.drv has dependencies which are not satisfied.

looking at https://social.msdn.microsoft.com/Forums/en-US/a28331ae-19a3-4a34-b3ba-1e8fd4430375/missing-apimswincore-dlls

You are not missing those DLLs.

Those DLLs are Windows's implementation detail and are subject to change at anytime. Basically Microsoft started moving around APIs starting from Windows 8. For example, APIs in Windows 8's api-ms-win-core-file-l1-2-0.dll got moved to api-ms-win-core-file-l1-2-1.dll in Windows 8.1. Old software still work because the dlls developer linked to are now just placeholders redirecting calls to the actual implementation. But nobody should link to the implementations directly, as that would be defeating the purpose of having such a redirection. Any software that report those dlls are missing are failing to accommodate the redirection (e.g. reporting a delay-loaded dependency as hard one).

Don't try to obtain those dlls. The only supported way to get those DLLs is to do a major Windows upgrade (e.g. from Windows 7 to Windows 10). Distributing those files is against Windows end user agreement, and those files you get from a higher version of Windows won't work if your Windows version is too low.

If you are a developer, just use the APIs documented in the Windows SDK (unless absolute necessary like writing antivirus) and do not take any dependency on those dlls, as they may only exist in one Windows version. Those APIs may or may not use the DLLs you listed, but their dependencies are not yours to worry. You should only depend on documented APIs, not implementation details like the name of those DLL. E.g. instead of taking a direct dependency on api-ms-win-core-file-l1-2-0.dll you should take a dependency on kernel.dll which supports Windows 7 as well.

So I think I'm going to give up, try a a new printer (it is a very old printer), and if that fails, rewrite win32lib (!). I'm not writing a new printer driver.

Just discovered another issue, Windows 10 (one of the upgrades H22 or something) loses printer sharing, so I can't print from another computer. Fun times.

Cheers

Chris

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu