JeFernando
New Member
Hello Guys,
I am having a weird problem with installing external DLL. My Process architecture is 64 bit with Progress version 12. As my ABL application uses crystal reporting tool which only support 32bit, it is set to use prowin32.exe instead of prowin.exe and I am assuming progress doesn't have issue with that, running different prowin version on different OS architecture.
Now the problem from here gets complicated. My 32bit DLL is not working as appbuilder is rejecting it because of different architecture. Now when I build 64bit DLL, appbuilder accepts that DLL but my ABL application rejects it in runtime because its running 32bit and gives the System.BadImageFormatException error.
Even using 'ANY CPU' doesn't helps, because when using Assemblies Reference tool, 64 bit code is loaded into 64 bit process and 32 bit code is loaded into a 32 bit process. So technically any cpu is of no use here.
I could though use Assemblies Reference tool and add 64bit DLL and then replaced the actual DLL file without touching assemblies to 32bit. This works and my application runs the code, but problem comes when I start to compile the code as again app builder will search for right DLL.
Theoretically I should be able to do this programmatically using a simple validation of PROCESS-ARCHITECTURE and PROVERSION keywords to which DLL to be used, but how to do this using these limitation and the way progress handles external DLL.
Sorry for long post, any direction will be highly appreciable.
I am having a weird problem with installing external DLL. My Process architecture is 64 bit with Progress version 12. As my ABL application uses crystal reporting tool which only support 32bit, it is set to use prowin32.exe instead of prowin.exe and I am assuming progress doesn't have issue with that, running different prowin version on different OS architecture.
Now the problem from here gets complicated. My 32bit DLL is not working as appbuilder is rejecting it because of different architecture. Now when I build 64bit DLL, appbuilder accepts that DLL but my ABL application rejects it in runtime because its running 32bit and gives the System.BadImageFormatException error.
Even using 'ANY CPU' doesn't helps, because when using Assemblies Reference tool, 64 bit code is loaded into 64 bit process and 32 bit code is loaded into a 32 bit process. So technically any cpu is of no use here.
I could though use Assemblies Reference tool and add 64bit DLL and then replaced the actual DLL file without touching assemblies to 32bit. This works and my application runs the code, but problem comes when I start to compile the code as again app builder will search for right DLL.
Theoretically I should be able to do this programmatically using a simple validation of PROCESS-ARCHITECTURE and PROVERSION keywords to which DLL to be used, but how to do this using these limitation and the way progress handles external DLL.
Sorry for long post, any direction will be highly appreciable.