accedere alle risorse bitmap in una DLL C ++ da VB6
Domanda
Ho una DLL C ++ che include risorse bitmap create da Visual Studio.
Sebbene sia possibile caricare la DLL in VB6 utilizzando LoadLibrary, non è possibile caricare le risorse di immagine utilizzando LoadImage o LoadBitmap. Quando provo a ottenere l'errore utilizzando GetLastError (), non restituisce alcun errore.
Ho provato a utilizzare LoadImage e LoadBitmap in un altro programma C ++ con la stessa DLL e funzionano senza problemi.
Esiste un altro modo per accedere alle bitmap delle risorse nelle DLL C ++ usando VB6?
Soluzione
Dato che stai usando l'ID numerico della bitmap come stringa, devi aggiungere un " # " di fronte:
DLLHandle = LoadLibrary("Mydll.dll")
myimage = LoadBitmap(DLLHandle, "#101") ' note the "#"
In C ++ puoi anche usare la macro MAKEINTRESOURCE, che è semplicemente un cast di LPCTSTR:
imagehandle = LoadBitmap(DLLHandle, MAKEINTRESOURCE(101));
Altri suggerimenti
Hai l'idea giusta. Probabilmente hai sbagliato chiamata. Forse potresti mostrare un po 'di codice dato che non riesco a immaginare cosa stai passando.
In VB6:
Funzione di dichiarazione privata LoadLibrary Lib " kernel32 " Alias ??"LoadLibraryA" (ByVal lpLibFileName As String) As Long
Funzione di dichiarazione privata LoadBitmap Lib "quot32 utente32" Alias ??"LoadBitmapA" " (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long
DLLHandle = LoadLibrary (" Mydll.dll ")
myimage = LoadBitmap (DLLHandle, " 101 ")
viene fornito con myimage come 0 anche se DLLHandle è diverso da zero, tuttavia, in C ++:
imagehandle = LoadBitmap (DLLHandle, LPCSTR (101));
opere!
Grazie mille