Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

• Help others & share knowledge
• Earn cash & points
Solved

dll for 32bit and 64bit

Posted on 2012-03-27
563 Views
hello there,
I have a source code for a 32bit and 64bit dll file on VS2010..
I would like to know how to make the app load the correct dll file on run time..
so if its a windows 32bit load the 32bit dll or if its 664bit then load the correct dll file..
how can I do this?
0
Question by:XK8ER
• 2
• 2
• 2
• +3

LVL 75

Accepted Solution

käµfm³d   👽 earned 500 total points
ID: 37772938
You can check the size of an IntPtr. If it's 4, then you are in 32-bit; if it's 8, then you are on 64-bit. Then you can load the assembly dynamically.

e.g.

Imports System.Reflection

...

Dim loadedAssem As Assembly = Nothing

If System.Runtime.InteropServices.Marshal.SizeOf(GetType(IntPtr)) = 8 Then
Else
End If

0

LVL 16

Expert Comment

ID: 37774149
VS2010 gives you all sorts of build options.  Why not simply name the resulting application and DLL differently for 32 and 64 bit versions of the project:
My.exe + My.dll
My64.exe + My64.dll.
Have the 32 bit version link to My.lib import library and the 64 bit version link to My64.lib import library.
0

LVL 1

Author Comment

ID: 37774167
somehow I have a project that works a bi different..
when I go to VS2010 > properties > references > I see component Name.
when I compile the exe file and run it.. it knows which dll file to load 32 or 64 dll..
both dll files are located in C:\Windows\System32
hows that possible?
0

LVL 83

Expert Comment

ID: 37774209
May be its a loader component that you are referencing and it loads and uses a different DLL based on 32 vs 64 bit using the technique suggested by kaufmed.
0

LVL 1

Author Comment

ID: 37774385
when I look at the path from
VS2010 > properties > references > componentName.

Interop.componentName.dll
0

LVL 44

Expert Comment

ID: 37775095
>>I have a source code for a 32bit and 64bit dll file on VS2010..

OK - BUT that may well be different technology to the other dll you talk about.
A .net program/library does NOT compile to a specific executable code, it compiles to an intermediate which should be 32/64 bit independant.  When the app/dll then runs the .net environment compiles it to either the 32 bit or the 64 bit version as required.  So one .net dll will cover both 32 and 64 bit operating systems.
0

LVL 75

Expert Comment

ID: 37776114
When the app/dll then runs the .net environment compiles it to either the 32 bit or the 64 bit version as required.  So one .net dll will cover both 32 and 64 bit operating systems.
Not to say I'm not doing something wrong, but I have run into issues where using a 3rd-party library that was compiled for a specific environment (ODP.NET) did force me to pick whether or not I was targeting a 32- or 64-bit environment in order to properly load the 3rd-party library.
0

LVL 44

Expert Comment

ID: 37776143
Hmmm - maybe instead of will I ought to have said should.
0

LVL 33

Expert Comment

ID: 37781561
system32 should not contain 64-bit dlls. if it does nevertheless the dll either was never used, or the 64-bit program that loads it, explicitly uses the path to system32 folder, or the 64-bit dll isn't 64-bit but 32-bit (only the name contains 64 ???).

Sara
0

Featured Post

Question has a verified solution.

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

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
Starting up a Project
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…