vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB & Windows API
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen 
Autor: benne
Datum: 25.02.10 16:43

Hallo Martoeng,

ich habe den Code nochmal neu geschrieben und versucht so sauber wie möglich die Schritte ablaufen zu lassen.
Da die Files mittlerweile als Stream in der DB sind, lese ich sie eben vorher kurz aus ..
Die verwendeten eigenen Funktionen zum Öffnen der DB sind selbsterklärend
Public Sub GDI_LoadPictures()
    Dim rst As ADODB.Recordset
    Dim strSQL  As String
    Dim strTableName As String
    Dim objPicture As StdPicture
    Dim arrPicture() As Byte
    Dim strTempPath As String
    Dim strPath As String
    Dim objStream As ADODB.stream
 
    Set rst = New ADODB.Recordset
 
    strTableName = GetTableName("xx0")  ' Tabellenname
    strSQL = "Select * from " & strTableName
    strTempPath = "c:\temp\Icons\Stream\"
 
    Call rst.Open(strSQL, GetConn(), adOpenDynamic, adLockOptimistic)
 
    Set objStream = New ADODB.stream
    Call InitGDIP
    While Not rst.EOF
        Debug.Print rst!striconfilename
        strPath = strTempPath & rst!striconfilename
        With objStream
            .Open
            .Type = adTypeBinary
            .Write (rst!objImage)
            .SaveToFile strPath, adSaveCreateOverWrite
            .Close
        End With
        Set objPicture = LoadPictureGDIP(strPath)               ' hier kommt 
        ' Fehler 2
        arrPicture = ArrayFromPicture(objPicture, pictypebmp)
 
        With rst
            !objPictureData = arrPicture
            .Update
            .MoveNext
        End With
    Wend
 
    Set rst = Nothing
    Set objPicture = Nothing
    Set objStream = Nothing
End Sub
Sofort bei ersten Icon (exclamation.ico) kommt dann der Fehler 2 von der GDI Funktion :GdipCreateBitmapFromFile




Die verwendete GDIP Funktion habe ich zur Sicherheit hier auch nochmals zur Ansicht :
Function LoadPictureGDIP(sFileName As String) As StdPicture
    Dim hBmp As Long
    Dim hPic As Long
 
    If lGDIP = 0 Then InitGDIP: If lGDIP = 0 Then Exit Function
    If GdipCreateBitmapFromFile(StrPtr(sFileName), hPic) = 0 Then
        GdipCreateHBITMAPFromBitmap hPic, hBmp, vbWhite
        If hBmp <> 0 Then
            Set LoadPictureGDIP = BitmapToPicture(hBmp)
            GdipDisposeImage hPic
        End If
    End If
 
End Function
Bezüglich der gdiplus.dll habe ich mich im Web mal schlau gemacht und erfahren, dass die DLL nicht im System32 steht und auch nicht registriert werden kann.

Das bedeutet, dass ich zwar nicht wirklich weiter bin, aber nun fest vermute, dass es mit der DLL Version zu tun haben könnte.

mfg
benne
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ico Dateien mit GDI+ in Datenbank und ImageList einlesen5.328benne19.02.10 16:01
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.647ModeratorMartoeng19.02.10 16:06
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.725benne19.02.10 16:26
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.579ModeratorMartoeng19.02.10 16:58
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.550benne19.02.10 17:09
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.538benne24.02.10 12:50
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.549ModeratorMartoeng24.02.10 14:01
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.502benne24.02.10 18:03
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.528ModeratorMartoeng25.02.10 14:55
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.623benne25.02.10 15:19
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.548benne25.02.10 16:43
Re: Ico Dateien mit GDI+ in Datenbank und ImageList einlesen3.566ModeratorMartoeng25.02.10 16:57
Version der GDIPlus.dll3.515benne25.02.10 17:33
Re: Version der GDIPlus.dll3.668ModeratorMartoeng25.02.10 17:59
Re: Version der GDIPlus.dll3.510benne25.02.10 18:11

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-2025 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