PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vb.net allgemein zu dll´s



krusty
08.07.2009, 15:26
Hey ho.
Ich würde mich gerne ein wenig mit API funktionen und dll´s beschäftigen, um andere programmfunktionen zu übernehmen. Ich habe bis jetzt noch kein tut gefunden, wo erklärt wurde, wie man eine fremde dll in sein programm einbaut. Vor langerzeit hatte ich mir mal vorgenommen nen kleinen winrar bruter zu schreiben, projekt ist aber an dem zuvor geschildertem Problem gescheitert... beispiele habe ich relatiev wenige gefunden, oder ich war einfach zu blind...
In dieser richtung fehlt mir leider eine menge grundwissen... vlt könnte mir ja iwer helfen, ein wenig auf die sprünge helfen und versuchen zu erklären, wie man eine fremde dll in sein programm einbaut und verwendet.
grüße
Alex

Kolabi
08.07.2009, 15:37
Imports System.Runtime.InteropServices;



<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Int32) As Boolean
End Function

krusty
08.07.2009, 15:59
okay, das ganze stellt mir die funktion ShowWindow zur verfügung.
http://msdn.microsoft.com/en-us/library/ms633548%28VS.85%29.aspx
Sie nimmt Parameter entgegen, da ich ein wenig durcheinander...

Sawyer
08.07.2009, 16:04
Ich muss sagen es ist viel einfach die besagte dll als Verweis zum Projekt hinzuzufügen. Der Vorteil ist , das man mit dem Objektbrowser die funktionen der dll gut einsehen und dann ansteuern kann.

Also als Verweis hinzufügen , und von der besagten klasse der dll ein Objekt erzeugen , und schon kann man die Funktionen verwenden ;)

MfG

krusty
08.07.2009, 16:05
soweit ich weiß0 kann man aber einige dlls ncht einfach als verweis importieren =$
berichtigt mcih wenn ich falsch liege

Sawyer
08.07.2009, 16:10
soweit ich weiß0 kann man aber einige dlls ncht einfach als verweis importieren =$
berichtigt mcih wenn ich falsch liege

Ja das stimmt. Es muss sich um eine COM oder .NET dll handeln. Sonst wirst du wohl nicht um dll import herumkommen.

MfG

inmate
08.07.2009, 16:11
Er kann doch auch Private Declare Function Lib "user32.dll" _ ....usw. nehmen.
Warum mit .dll import ?

Kolabi
08.07.2009, 16:12
soweit ich weiß0 kann man aber einige dlls ncht einfach als verweis importieren =$
berichtigt mcih wenn ich falsch liege

Nur .NET Dlls können als Verweis importiert werden..

user32.dll, comdlg32.dll et cetera können nur per DLLImport genutzt werden.


Er kann doch auch Private Function "user32.dll" Lib _ ....usw. nehmen.
Warum mit .dll import ?

Weil ich so in C# arbeite ;-) Man kann natürlich auch deine Variante nehmen.

inmate
08.07.2009, 16:18
Ja aber er könnte doch trotzdem funktionen aus ihnen aufrufen.
Aus der user32.dll zumindest siehe hier:
http://www.v-basic.de/vboard/Syntax_dllImport.html

mfg

krusty
08.07.2009, 16:22
hmmmpf =$
WIe sieht das denn mit den funktions namen in den dlls aus, die kann ich ja nicht auf anhieb wissen, genau so wie die zu übergebenden parameter, wenn Kolabi (http://free-hack.com/member.php?u=36842)´s methode benutze

Kolabi
08.07.2009, 16:24
hmmmpf =$
WIe sieht das denn mit den funktions namen in den dlls aus, die kann ich ja nicht auf anhieb wissen, genau so wie die zu übergebenden parameter, wenn Kolabi (http://free-hack.com/member.php?u=36842)´s methode benutze

Dafür kann man pinvoke benutzen.
http://www.pinvoke.net/index.aspx

krusty
08.07.2009, 16:27
woOw danke <33