C# 64 bit dll, can it be called somewhay by a 32 bit dll or exe

Helping a friend out.
They have 64 bit dll's that the need another application to use.
Other application is all 32 bit and we cannot change the dll's to build for all CPU's

32 bit is all vb.net in the same framework

I was thinking about  having a com explosed dotnet class call the 64 bit. dll and then the com plus exposed could be called by other 32 apps.

Also considered late binding.

any ideas?
hainansyndromeAsked:
Who is Participating?
 
Fernando SotoConnect With a Mentor RetiredCommented:
Hi hainansyndrome;

Each application that is built runs in a Application Domain which isolates the application from all other application so that each application can't adversely affect each other. This application domain runs in a 32 bit or 64 bit but can not have both in the same app domain. Using a com interface is the same thing so you can not use comm as you stated in your opening question. Now that said it is possible for a 32 bit and a 64 bit applications to talk to each other but you would need to build an app around each DLL one being a 32 bit and the other being 64 bit and have them communicate through a technology such as IPC, Interprocess Communications,  DCOM, Distributed Component Object Model, Remoting, and other such technologies. But in no way can they both be in the same application Domain, same program.
0
 
Fernando SotoRetiredCommented:
Hi hainansyndrome;

Please read this post, it will answer your question.

So, after all, can 32bit code call into 64bit code?
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
First off I would say no.
You could try your idea but be prepared for a lot of effort for no return.

Having said that the question sounds very strange:  
As 64 bit dll's (as far as I know) will not function on a 32 bit operating system this means that all the target operating systems must be 64 bit.  So just changing the build to 64 bit will make no difference to the operating systems you target and solve this problem in one (trivial) step.
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
hainansyndromeAuthor Commented:
the operating system is a 64 bit one, just has 32 bit dll's in it
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
Do you understand me?
32 bit dll's will function within a 64 bit operating system.
As far as I know 64 bit dll's will not run within a 32 bit operating system.

So, if your app is to use a 64 bit dll then it can only work on 64 bit operating system.  So why not just build it as 64 bit.
0
 
Fernando SotoRetiredCommented:
Hi hainansyndrome;

Did you read the link I posted?
0
 
hainansyndromeAuthor Commented:
its a 64 bit environment with 2 dll's
a 32 bit and a 64 bit

I need to figure a way to get a 32 bit dll to call a 64 bit dll.
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
I agree with FernandoSoto, what you are wanting to do is very complex.

edit - I missed the last author comment.

The simplest is to build this 32 bit dll as 64 bit, everything else is 64 bit so that step should be trivial.
0
 
Fernando SotoRetiredCommented:
Hi hainansyndrome;

If the dll that can't be modified is a third party dll maybe you can check with them to see if they already have a 32 bit version of that dll.
0
All Courses

From novice to tech pro — start learning today.