Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DLL einbinden, wo Verzeichnis vorgeben ?
peter
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

DLL einbinden, wo Verzeichnis vorgeben ?

beantworten | zitieren | melden

Hallo,

ich habe ein kleine Programm geschrieben, wo auf eine DLL zugegriffen wird.
Leider bekomme ich immer eine Fehlermeldung, wenn sich die DLL nicht im windows\system befindet.
Wenn ich sie in das Verzeichnis packe wo meine Prokjekt liegt, findet er sie nicht.

Jemand einen Tipp ?

Gruss

Peter
private Nachricht | Beiträge des Benutzers
cdr
myCSharp.de - Member



Dabei seit:
Beiträge: 1008
Herkunft: Zürich

beantworten | zitieren | melden

Ich nehme an du sprichst von klassischen DLLs per DllInclude
(nicht von .NET DLLs per Linking/Reflection)?
private Nachricht | Beiträge des Benutzers
peter
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

ja,

hier das Beispiel

public class ParPort
{
[DllImport("inpout32.dll", EntryPoint="Inp32")]
public static extern int Input(int adress);


[DllImport("inpout32.dll", EntryPoint="Out32")]
public static extern void Output(int adress, int val);
}

Gruss

Peter
private Nachricht | Beiträge des Benutzers
Tobi++
myCSharp.de - Member



Dabei seit:
Beiträge: 41

beantworten | zitieren | melden

Zitat
Original von cdr

Ich nehme an du sprichst von klassischen DLLs per DllInclude
(nicht von .NET DLLs per Linking/Reflection)?

Das nennt man auch P/Invoke

Guck dir mal das Windows\System-Verzeichnis an - das ist so gut wie leer. Das Verzeichnis Windows\System32 sieht schon um einiges besser aus.
Korn, Bier, Schnaps und Wein
und wir höhren unsere Leber schrein!
private Nachricht | Beiträge des Benutzers
Pulpapex
myCSharp.de - Member



Dabei seit:
Beiträge: 962
Herkunft: Rostock

beantworten | zitieren | melden

Also ich habe keine inpout32.dll in meinem System32-Verzeichnis. Wenn das eine eigene Dll ist, müsste es funktionieren, wenn du sie in das selbe Verzeichnis packst, in der auch deine Anwendung ist.


Gruß
Pulpapex
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

Hallo,

habe extra noch mal die Gegenprobe gemacht.

Es funktioniert wirklich nur, wenn ich die Datei im Windows Verzeichnis liegt. Sonst kommz immer folgender Fehlermeldung:

Eine nicht behandelte Ausnahme des Typs 'System.DllNotFoundException' ist in WindowsApplication3.exe aufgetreten.

Zusätzliche Informationen: Die DLL (inpout32.dll) kann nicht geladen werden.


GRuss

Peter
Gelöschter Benutzer

beantworten | zitieren | melden

Benötigt man für DLLImport ein spezielles Namespace? weil bei mir erkennt .net den befehl nicht.
Vellas
myCSharp.de - Member



Dabei seit:
Beiträge: 854

beantworten | zitieren | melden

Ich glaube das war folgender:
Zitat
using System.Runtime.InteropServices;


Code-Hacker
private Nachricht | Beiträge des Benutzers