If you work with scientific instrumention, it is very probable you need windows 32 bit. Sure, years ago we didn’t have Julia but is very nice to be to have Julia call a Win32 DLL that is used by some equipment that only works with a 32 bit windows installation. That is why I often run Julia on a Windows 7 32 bits machine. As each day goes by, some software component can no longer be installed without searching the internet for a specific version of a package that has no more download options in the official channels.
By the way, I still can not get rid of a couple of Windows XP computers. The horror, the horror…
Out of curiosity, do you use Julia in this environment because you can, or because another language, say Python, wouldn’t fit the bill? IE if there was no Julia, how much worse off would you be?
You are not alone with doing that, but it seems clearly stated that you can still do it from 64-bit (Julia):
I have a 32bit dll (no source code) that I need to access from 64bit C# application. […]
Answer:
IMHO, the easiest way to do this is to use COM+ (Component Services) which is part of Windows for like 20 years or so (previous versions used to be called MTS…). It provides the surrogate infrastructure for you with tools, UI, and everything you need. But that means you’ll have to use COM, so it’s good to know a bit of COM for this.
First create an x86 COM DLL. I’ve used ATL for that. Created an ATL project, added an ATL simple object to it, added the method to the IDL and implementation. […]
Note the other 0-rated answer:
You are not going to be able to directly call 32-bit code from 64-bit code (or the other way around), it simply is not going to happen. […]
I’m not sure, why that answer. Is this simply not know, or some ignorance, or can you call some DLLs, but not others. In all cases you can call any other separate process from Julia, either (older) 32-bit Julia, or even 32-bit Python, and it could call any DLL.
I know “scientific instrumention” is important, very likely for Julia users. So I wouldn’t want you to jump through hoops, which the above answer indicates. Still, do you think it would work for you, and is it actually a relatively simple process?
You could always use older 32-bit Julia, and I might reconsider, maybe the next LTS, likely 1.10 should still have 32-bit binaries, supported for as long (3 years, seems the default, though that or any amount of time has never been explicitly promised).
I was a bit misleading maybe with 32-bit Windows going out, or increasingly rare. That means 32-bit only Windows. 64-bit Windows, all of them support 64-bit and 32-bit process into the foreseeable future.
[We want to get rid of Libc, there’s already a Julia replacement for all of it, but it can’t be switched to, since it doesn’t work on 32-bit Windows (yet). I’m just showing the progress we are blocking, or making harder. Simply dropping 32-bit Windows would be easiest. here might be a compromise that 32-bit Windows would only have partial of the new “libc” functionality? Or it could rely on the old libc… I just think they don’t want to split the code-base that way.]
I would use older software and I would have some difficulty integrating with other, newer stuff. But even python stuff is difficult: it is getting more difficult each day to find packages that work on those older systems. Even compilers and tools get more difficult to get to work. We try to change things as little as possible but computers break down…
We have one equipment, very good that has a terrible software that is required to configure the hardware. The software works fine on newer windows but it has a hard key whose installer is called during installation and it doesn’t work on anything newer than XP. And the manufacturer wants to charge thousands of dollars to update the terrible software that does very little. It is frustrating.