vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Image aus Dll auslesen 
Autor: ModeratorDaveS (Moderator)
Datum: 08.09.10 18:32

Hier ist die Klasse komplett mit Aufruf
Imports System.Runtime.InteropServices
Imports System.IO
 
Public Class ImageLoader
 
    <DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
    Private Shared Function FindResource(ByVal hhMod As IntPtr, ByVal lpID As _
    Integer, ByVal lpType As String) As IntPtr
    End Function
 
    <DllImport("kernel32.dll", SetLastError:=True)> _
    Private Shared Function LoadResource(ByVal hhMod As IntPtr, ByVal hResInfo _
    As IntPtr) As IntPtr
    End Function
 
    <DllImport("kernel32.dll", SetLastError:=True)> _
    Private Shared Function LockResource(ByVal hResData As IntPtr) As IntPtr
    End Function
 
    <DllImport("kernel32.dll", SetLastError:=True)> _
    Private Shared Function SizeofResource(ByVal hhMod As IntPtr, ByVal _
    hResInfo As IntPtr) As Integer
    End Function
 
    <DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
    Private Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
    End Function
 
    <DllImport("kernel32.dll", SetLastError:=True)> _
    Private Shared Function FreeLibrary(ByVal hModule As IntPtr) As Boolean
    End Function
 
    Public Shared Function GetImageFromResource(ByVal resourceId As Integer, _
      ByVal moduleName As String) As Image
        Dim hModule As IntPtr = LoadLibrary(moduleName)
        If hModule = IntPtr.Zero Then Return Nothing
        Dim resource As IntPtr = FindResource(hModule, resourceId, "IMAGE")
        If resource = IntPtr.Zero Then Return Nothing
        Dim rsrcid As IntPtr = LoadResource(hModule, resource)
        If rsrcid = IntPtr.Zero Then Return Nothing
        Dim memory As IntPtr = LockResource(rsrcid)
        If memory = IntPtr.Zero Then Return Nothing
        Dim size As Integer = SizeofResource(hModule, resource)
        Dim bytes(size - 1) As Byte
        Marshal.Copy(memory, bytes, 0, size)
        Dim memStream As New MemoryStream(bytes)
        FreeLibrary(hModule)
        Return Image.FromStream(memStream)
    End Function
 
End Class
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As  _
      System.EventArgs) Handles Button1.Click
        PictureBox1.Image = ImageLoader.GetImageFromResource(5031, _
          "imageres.dll")
    End Sub

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Image aus Dll auslesen3.370Manuela06.09.10 10:32
Re: Image aus Dll auslesen2.293ModeratorDaveS06.09.10 13:10
Re: Image aus Dll auslesen2.270Manuela06.09.10 21:12
Re: Image aus Dll auslesen2.365ModeratorDaveS07.09.10 03:16
Re: Image aus Dll auslesen2.347Manuela07.09.10 07:44
Re: Image aus Dll auslesen2.457ModeratorDaveS07.09.10 10:22
Re: Image aus Dll auslesen2.252Manuela07.09.10 10:24
Re: Image aus Dll auslesen2.275Manuela07.09.10 21:31
Re: Image aus Dll auslesen2.328ModeratorDaveS08.09.10 09:36
Re: Image aus Dll auslesen2.229Manuela08.09.10 11:28
Re: Image aus Dll auslesen2.265ModeratorDaveS08.09.10 12:41
Re: Image aus Dll auslesen2.323Manuela08.09.10 13:31
Re: Image aus Dll auslesen2.233ModeratorDaveS08.09.10 16:17
Re: Image aus Dll auslesen2.282ModeratorDaveS08.09.10 18:32
Re: Image aus Dll auslesen2.204Manuela08.09.10 21:32

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel