Forum: PC-Programmierung DLL für 32 und 64 Bit?


von Georg (Gast)


Lesenswert?

Hallo,

ich möchte mit meiner DLL sowohl 32 Bit als auch 64 Bit Windows-Systeme 
unterstützen. Dafür brauche ich doch 3 Versionen? Eine für 32 Bit und je 
eine für 64 Bit AMD bzw. Intel, oder?

Es ist scheinbar so (laut DependencyWalker), dass auch die 64 Bit 
Variante auf 32 Bit DLL's zurückgreift. Kann das sein oder habe ich das 
Teil falsch gelinkt?

Außerdem bekomme ich einen IESHIMS.DLL - (und bei der x86 Version noch 
einen GPSVC.DLL -) Fehler angezeigt. Was hat das jetzt zu bedeuten?

Eine Menge Fragen, ich weiss...:)

Gruß Georg

von nocheinGast (Gast)


Lesenswert?

Georg schrieb:
> und je
> eine für 64 Bit AMD bzw. Intel
Wieso das denn? Die 64-bit-CPUs von Intel und AMD sind kompatibel 
zueinander. Oder hast du im Laden schon mal zwei verschiedene 
Windows-Versionen zum Kaufen gesehen?
Falls du das meinst: Itanium ist tot.

von (prx) A. K. (prx)


Lesenswert?

nocheinGast schrieb:

> Wieso das denn?

DLLs sind keine selbständigen Programme, sondern werden von Programmen 
benutzt. Wenn das 64-Bit Programme sind, dann brauchen sie eine 64-Bit 
DLL.

> zueinander. Oder hast du im Laden schon mal zwei verschiedene
> Windows-Versionen zum Kaufen gesehen?

Ja. Nicht für AMD vs. Intel, wohl aber für 32-Bit vs. 64-Bit.

von nocheinGast (Gast)


Lesenswert?

Mir ist klar, dass du für jede Architektur eine eigene DLL brauchst. 
Aber der TO spricht von 3 Versionen, und er sagt eindeutig, dass man für 
AMD64 und für EM64T zwei verschiedene Versionen braucht. Dem habe ich 
widersprochen, nicht mehr und nicht weniger.
Bitte lest doch die Threads mal richtig, bevor ihr antworten gebt auf 
Sachen, die nie zur Debatte standen.

von Frank K. (fchk)


Lesenswert?

Georg schrieb:
> Hallo,
>
> ich möchte mit meiner DLL sowohl 32 Bit als auch 64 Bit Windows-Systeme
> unterstützen. Dafür brauche ich doch 3 Versionen? Eine für 32 Bit und je
> eine für 64 Bit AMD bzw. Intel, oder?

Du meinst:
- 32 Bit x86
- 64 Bit x86-64 aka amd64 (auch für Intel Core2 und Xeons)
- 64 Bit ia64 Itanium (inzwischen so gut wie tot)

Du mischt ia64 und amd64. Letzteres hat auch Intel lizensiert.

fchk

von Georg (Gast)


Lesenswert?

Der Punkt ist der, dass man z.B. beim WINDDK gegen eine 'amd64' bzw. 
'ia64' Lib unter Win7 linken kann - daher der Gedanke.

Gruß Georg

von bluppdidupp (Gast)


Lesenswert?

Georg schrieb:
> Es ist scheinbar so (laut DependencyWalker), dass auch die 64 Bit
> Variante auf 32 Bit DLL's zurückgreift. Kann das sein oder habe ich das
> Teil falsch gelinkt?
Unter Windows:
- Eine 64-Bit-Anwendung kann keine 32-Bit DLLs laden.
- Eine 32-Bit-Anwendung kann keine 64-Bit DLLs laden.
Allerdings sind (unter 64bit-Windows Systemen) so gut wie alle 
Windows-DLLs doppelt vorhanden, als 32bit und als 64bit Version. Aus dem 
Namen wie z.B. kernel32.dll kann man da nichts ableiten, die gibt es 
sowohl in 64bit als auch in 32bit unter dem gleichen Namen!

von Georg (Gast)


Lesenswert?

Alles klar - das wars: kernel32.dll. Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.