当前位置:主页 > 理财百科 > 虚拟货币 > 正文

HBIT币值得长期投资吗(lhb币值得投资吗)

HBITMAP是什么结构

MSDN只笼统一句话告诉你HBITMAP是HANDLE类型.要了解内部细节,你还得自己看SDK文件.

查看你的WinDef.h文件

-------------------------------------------------------------------------------------------------

#ifdef STRICT

typedef void*HANDLE;

#define DECLARE_HANDLE(name) struct name##__{ int unused;}; typedef struct name##__*name

#else

typedef PVOID HANDLE;

#define DECLARE_HANDLE(name) typedef HANDLE name

---------------------------------------------------------------------------------------------------------

如果定义了STRICT,那么HBITMAP类型就等于 HBITMAP__{}结构, HBITMAP同时也是HBITMAP__类型的指针.

如果没有定义STRICT, HBITMAP= HANDLE类型, HANDLE= PVOID类型.PVOID= void*类型

所以HBITMAP就等于void*类型.

要查看HBITMAP是个结构还是void*类型很简单(定义了trict,就是结构类型,否则void*)

你用void* p= static_cast<void*>( HBITMAP句柄).如果可以转换,HBITMAP就是void*.不行的话说明是结构类型.你必须用reinterpret_cast<>来转换.当然用C转换也行.

怎么将HBITMAP转成char

上面的代码执行完后,HBITMAP hbmp应该指向这幅图

char s[1000];

memcpy(s, hbmp,?);

这样做主要是为把hbmp中的内容通过socket send给其他进程

------解决方案--------------------------------------------------------

hbmp只不过是位图句柄,并不是实际的数据,你要用CBitmap.GetBitmapBits()获得数据,何必要要用Char,用byte不是更好

------解决方案--------------------------------------------------------

不是把HBITMAP转换成char*,可以把图片压到dll里面,

hImageBMP= LoadBitmap(lib,MAKEINTRESOURCE(pic_ID));

pic_ID就是里面的ID号,可以通过直接传ID号也可以实现你的想法,

------解决方案--------------------------------------------------------

给你两个函数用于通过hbitmap获得bits,和大小

GetBitmapBits, GetObject

通过这两个函数你可以把你想要的数据存到一个buffer里,再用socket send给其他进程,之后将这个buffer还原成原始位图

分享至:

虚拟货币相关

邮箱不能为空
留下您的宝贵意见