Autor Beitrag
Vegeto
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Do 17.07.14 11:03 
Hi,

mal ne ganz banale und einfache Frage, die mich beschäftigt.
ausblenden C#-Quelltext
1:
2:
        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
        public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);


Wenn ich so den DllImport durchführe, wo musst die DLL abgelegt sein (den Code habe ich von MSDN) ???
Muss die Dll im Windowsordner unter System32 abgelegt sein oder reicht es wenn die Dll im Verzeichnis des Programmes ist?

LG
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 17.07.14 11:10 
Suchreihenfolge (nicht nur von DllImport sondern immer wenn eine Executable/Dll gesucht wird - bei Assemblies ist es noch ein wenig aufwendiger)

1. Das Verzeichnis wo die Anwendung liegt
2. Im aktuellen Verzeichnis
3. In Systemverzeichnis(System32)
4. Im Windowsverzeichnis (z.B.C:\Windows)
5. In den Verzeichnissen die in der PATH Umgebungsvariablen stecken


Edit: Wenn es konkret um die user32.dll geht dann ist das eine System Dll und die liegt schon an einem Ort der gefunden wird und die würde mit allerhöchster Wahrscheinlichkeit auch nicht funktionieren wenn du die woanders hinkopierst. Die hat selber wiederum Abhängigkeiten die sie finden muß.