在C+中访问位图资源+;VB6中的动态链接库 我有一个C++ DLL,包括VisualStudio./P>创建的位图资源。

在C+中访问位图资源+;VB6中的动态链接库 我有一个C++ DLL,包括VisualStudio./P>创建的位图资源。,c++,dll,vb6,bitmap,resources,C++,Dll,Vb6,Bitmap,Resources,虽然我可以使用LoadLibrary在VB6中加载DLL,但我不能使用LoadImage或LoadBitmap加载图像资源。当我尝试使用GetLastError()获取错误时,它不会返回任何错误 我尝试在其他的C++程序中使用LoDimaGead和Load ButMax,它们都是相同的DLL,它们没有任何问题。 是否有其他方式使用VB6? < P>访问C++的DLL中的资源位图?你可能打错电话了。也许你可以展示一些代码,因为我猜不出你在传递什么。你的想法是对的。你可能打错电话了。也许您可以显示一

虽然我可以使用LoadLibrary在VB6中加载DLL,但我不能使用LoadImage或LoadBitmap加载图像资源。当我尝试使用GetLastError()获取错误时,它不会返回任何错误

<>我尝试在其他的C++程序中使用LoDimaGead和Load ButMax,它们都是相同的DLL,它们没有任何问题。

是否有其他方式使用VB6?

< P>访问C++的DLL中的资源位图?你可能打错电话了。也许你可以展示一些代码,因为我猜不出你在传递什么。

你的想法是对的。你可能打错电话了。也许您可以显示一些代码,因为我猜不出您正在传递什么。

在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")
在C++中,
myimage
作为
0
提供,即使
DLLHandle
不是零:

imagehandle = LoadBitmap(DLLHandle,LPCSTR(101));
工作

非常感谢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")
在C++中,
myimage
作为
0
提供,即使
DLLHandle
不是零:

imagehandle = LoadBitmap(DLLHandle,LPCSTR(101));
工作


非常感谢

因为您将位图的数字ID用作字符串,所以必须在其前面添加一个“#”:

DLLHandle = LoadLibrary("Mydll.dll")
myimage = LoadBitmap(DLLHandle, "#101")  ' note the "#"
<>在C++中,您也可以使用MauntRealSe宏宏,它只是一个强制转换为LPCTSTR:

imagehandle = LoadBitmap(DLLHandle, MAKEINTRESOURCE(101));

由于使用位图的数字ID作为字符串,因此必须在其前面添加“#”:

DLLHandle = LoadLibrary("Mydll.dll")
myimage = LoadBitmap(DLLHandle, "#101")  ' note the "#"
<>在C++中,您也可以使用MauntRealSe宏宏,它只是一个强制转换为LPCTSTR:

imagehandle = LoadBitmap(DLLHandle, MAKEINTRESOURCE(101));