# 32 und 64Bit dll erstellen



## LL0rd (31. Juli 2009)

Hallo Leute,

ich möchte in c++ eine DLL erstellen, auf die ich aus C# heraus zugreife. So etwas ist ja idR kein Problem, solange man auf einer Plattform bleibt. Habe ich aber die c++ dll mit 32 Bit kompilliert und die Hostanwendung läuft auf 64 Bit, gibts einen Fehler - was auch klar ist.

Diesen Fehler möchte ich eigentlich umgehen, in dem ich einfach sowohl die 32 als auch die 64Bit Version der Datei bereitstelle. 

Sorry, ich weiß es momentan nur vom Hörensagen, aber unter OS X werden die Anwendungen gleich für beide Plattformen kompilliert (bzw. gelinkt), so kann eine Exeutable sowohl unter 32 Bit als auch unter 64 laufen. Beim Programmstart entscheidet dann das OS, was nun genommen wird. 

Geht so etwas auch unter Win? Und wenn ja, dann wie?


----------



## Anfänger92 (31. Juli 2009)

Hallo,

du köntest vorher 2 dll's + libs erstellen.

Per 
#if
und
#pragma
dann je nach Bit-Zahl des Programms die verschiedenen libs hinzulinken.

dann kanste ganz normal das Programm für beide Bit-Zahlen erstellen.

Gruß
Anfänger


----------



## D34DL1NES (5. August 2009)

Ähm, wenn du C# kannst - warum setzt du es nicht in C# um?
Da ist das kein Problem:

Wenn du VS benutzt(so mag es womöglich auch unter Visual C++ funktionieren) kannst du auf das projekt in dem sich die DLL bzw. Die Klasse die ein DLL werden soll Rechtsklicken, dann auch Eigenschaften(Properties). Da dann auf Build und dort im Platform Target: "x86", "x64", "any CPU" auswählen.


----------



## port29 (5. August 2009)

D34DL1NES hat gesagt.:


> Ähm, wenn du C# kannst - warum setzt du es nicht in C# um?



Es gibt viele Gründe, wieso man eine C++ DLL unter C# einbinden will / muss. Einige sind z.B. Performancegründe oder einfach nur Bequemlichkeit!


----------

