我有一个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));

作品!

非常感谢

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top