Hello.
I'm trying to run Adobe Photoshop Lightroom using Wine. One of the showstoppers was the fact that 64-bit process of Lightroom is loading 32-bit DLLs containing various resources. While Windows allows it [1] wine does not.
I made this simple change to Wine code just to make it work for my local usecase:
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -414,8 +414,6 @@ static unsigned int get_image_params( struct mapping *mapping, file_pos_t file_s
if (nt.opt.hdr32.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) return STATUS_INVALID_IMAGE_FORMAT;
break;
case CPU_x86_64:
- if (nt.FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) return STATUS_INVALID_IMAGE_FORMAT;
- if (nt.opt.hdr64.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) return STATUS_INVALID_IMAGE_FORMAT;
break;
case CPU_POWERPC:
if (nt.FileHeader.Machine != IMAGE_FILE_MACHINE_POWERPC) return STATUS_INVALID_IMAGE_FORMAT;
From what I can tell this change looks neigher neat nor correct.
My question is, what is the correct way to allow loading 32-bit dll into 64-bit process just for loading its resources.
Thank you.
-- best, Viktor.