从VB6访问位图的资源在一个C ++ DLL
题
我有一个C ++ DLL包括由Visual Studio创建的位图的资源。
虽然可以装入使用的LoadLibrary VB6中的DLL,我不能或者通过使用的LoadImage或通过使用LoadBitmap加载图像资源。当我试图让使用GetLastError函数()的错误,它亘古不返回任何错误。
我已经采用的LoadImage和LoadBitmap与同一DLL另一C ++程序试图与他们没有任何问题的工作。
是否有使用VB6存取在C ++中的DLL的资源位图的任何其他方式?
解决方案
由于正在使用的位图的数字ID作为字符串,必须在它的前面添加一个“#”:
DLLHandle = LoadLibrary("Mydll.dll")
myimage = LoadBitmap(DLLHandle, "#101") ' note the "#"
在C ++你也可以使用MAKEINTRESOURCE宏,这是一个简单的施放到LPCTSTR:
imagehandle = LoadBitmap(DLLHandle, MAKEINTRESOURCE(101));
其他提示
您已经有了正确的想法。你可能有呼错。也许你可以展示一些代码,因为我无法猜测为你传递什么。
在VB6:
私人声明函数的LoadLibrary库 “KERNEL32” 别名 “LoadLibraryA”(BYVAL lpLibFileName作为字符串)只要
私人声明函数LoadBitmap库 “USER32” 别名 “LoadBitmapA”(BYVAL的hInstance只要,BYVAL lpBitmapName作为字符串)只要
DLLHandle =的LoadLibrary( “MYDLL.DLL”)
MYIMAGE = LoadBitmap(DLLHandle, “101”)
带有MYIMAGE作为即使0 DLLHandle为非零值,然而,在C ++:
imagehandle = LoadBitmap(DLLHandle,LPCSTR(101));
作品!
非常感谢
不隶属于 StackOverflow