acesso a recursos de bitmap em um ++ DLL C do VB6
Pergunta
Eu tenho uma DLL C ++, incluindo recursos de bitmap criados pelo Visual Studio.
Embora eu possa carregar a DLL no VB6 usando LoadLibrary, eu não posso carregar os recursos de imagem ou usando LoadImage ou usando LoadBitmap. Quando eu tentar obter o erro usando GetLastError (), ele doesnot devolver quaisquer erros.
Eu tentei usar LoadImage e LoadBitmap em outro programa C ++ com a mesma DLL e eles funcionam sem problemas.
Existe alguma outra maneira de acessar os mapas de bits de recursos em DLLs C ++ usando VB6?
Solução
Uma vez que você estiver usando o ID numérico do bitmap como uma string, você tem que adicionar um "#" na frente dele:
DLLHandle = LoadLibrary("Mydll.dll")
myimage = LoadBitmap(DLLHandle, "#101") ' note the "#"
Em C ++ você também pode usar a macro MAKEINTRESOURCE, que é simplesmente um elenco de LPCTSTR:
imagehandle = LoadBitmap(DLLHandle, MAKEINTRESOURCE(101));
Outras dicas
Você tem a idéia certa. Você provavelmente tem o errado chamada. Talvez você poderia mostrar um pouco de código como eu não pode adivinhar, como o que você está passando.
Em VB6:
Private Declare Function LoadLibrary Lib "kernel32" Alias ??"LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function LoadBitmap Lib "user32" Alias ??"LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long
DLLHandle = LoadLibrary ( "Mydll.dll")
myimage = LoadBitmap (DLLHandle, "101")
vem com myimage como 0 mesmo que DLLHandle é diferente de zero, no entanto, em C ++:
= imagehandle LoadBitmap (DLLHandle, LPCSTR (101));
obras!
Muito obrigado