DLL - Zugriff immer gleich?

Gast #2191505
Lesenswert?

Hallo,

ich habe hier eine DLL, die unter .net 4.0 erstellt wurde und auch 
fehlerfrei funktioniert. Unter .net 3.5 gibt es allerdings Probleme: die 
DLL kann nicht geladen werden (sagt Visual Studio) und der PC versucht 
automatisch .net 4.0 zu installieren.

Ich dachte eine DLL hat eine definierte Schnittstelle und muß lediglich 
über diese immer gleich angesprochen werden? - Da hab ich mich wohl 
getäuscht, oder?

Gruß Sam
Gast #2191525
Lesenswert?

Das ist soweit klar. Aber die DLL greift nur auf Funktionen zu, die es 
schon vor 100 Jahren gab (wie z.B. CreateFile() usw.). Deshalb bin ich 
etwas überrascht.
Ich dacht, dass die DLL alles, was sie zur Implementierung braucht, in 
sich selber kapselt. Hm, das war aber die LIB, wenn ich so darüber 
nachdenke. Die DLL lädt die benötigten DLL's nach ...
Gast #2191584
Lesenswert?

es reicht schon in in den Infos der dll steht das sie für .net4.0 ist.

Wozu braucht meine eine C# DLL die CreateFile macht? Wenn man das 
unbedingt braucht dann kann man doch gleich eine C-Dll erzeugen.

Was spricht dageben die dll einfach für .net3.0 zu erzeugen, die geht 
dann auch unter 4.0?
Gast #2191879
Lesenswert?

Erstmal Danke für die Antworten.

Es spricht nichts dagegen, die DLL einfach für .net 3.0 zu erzeugen ... 
vorausgesetzt es geht auch einfach. Kann ich das aus .net 4.0 heraus 
machen? Z.B. durch irgendein Flag, das man setzen kann? Oder muss ich 
von .net 4.0 auf .net 3.0 downgraden?
#2191910
Lesenswert?

Wenn du eine Klassenbibliothek im .Net 4.0 erstellt hast, muss auf dem 
Zielsystem eben dieses Framework installiert sein.

Du kannst deine Klassenbibliothek problemlos für eine andere 
Frameworkversion erstellen. Voraussetzung ist, dass du keine "neuen" 
Features aus der Version 4.0 verwendet hast.

Die entsprechende Einstellungsmöglichkeit findest du bei den 
Projekteigenschaften (im Projekt explorer nen Doppelklick auf 
"Properties", dann sollte das schon im ersten Tab erscheinen).
Gast #2193602
Lesenswert?

Sam schrieb:
> Hallo,
>
> ich habe hier eine DLL, die unter .net 4.0 erstellt wurde und auch
> fehlerfrei funktioniert. Unter .net 3.5 gibt es allerdings Probleme: die
> DLL kann nicht geladen werden (sagt Visual Studio) und der PC versucht
> automatisch .net 4.0 zu installieren.
>
> Ich dachte eine DLL hat eine definierte Schnittstelle und muß lediglich
> über diese immer gleich angesprochen werden? - Da hab ich mich wohl
> getäuscht, oder?

Ja und nein.

Eine DLL ist eine DLL ist eine DLL, ausser wenn sie nur so heisst.

Was Du mit .NET erstellst ist keine traditionelle DLL sondern eine 
sogenannte Assembly, enthält keinen Maschinencode sondern .NET-Bytecode, 
kann digital signiert sein, enthält spezifische Metadaten, usw., blah, 
fasel.

Die .NET-Doku verrät Dir all das und noch mehr. Auch dass Assemblies 
meistens aufwärtskompatibel sind aber selten andersrum, ist ja irgendwie 
auch logisch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren