Solved

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

Posted on 2013-11-05
9
466 Views
Last Modified: 2014-02-05
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?
0
Comment
Question by:hainansyndrome
  • 4
  • 3
  • 2
9 Comments
 
LVL 62

Expert Comment

by:Fernando Soto
ID: 39626370
Hi hainansyndrome;

Please read this post, it will answer your question.

So, after all, can 32bit code call into 64bit code?
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39626508
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
 

Author Comment

by:hainansyndrome
ID: 39627057
the operating system is a 64 bit one, just has 32 bit dll's in it
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39627076
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
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 62

Expert Comment

by:Fernando Soto
ID: 39627124
Hi hainansyndrome;

Did you read the link I posted?
0
 

Author Comment

by:hainansyndrome
ID: 39629150
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
 
LVL 62

Accepted Solution

by:
Fernando Soto earned 220 total points
ID: 39629227
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
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39629431
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
 
LVL 62

Expert Comment

by:Fernando Soto
ID: 39630510
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

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now