Solved

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

Posted on 2013-11-05
9
486 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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

895 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

16 Experts available now in Live!

Get 1:1 Help Now