社区
C++ Builder
帖子详情
BCB调用动态库返回值使用MFC库的CBitmap类型
atulss
2010-08-12 09:03:10
最近碰到一个难解决的问题。
本个调用一动态库,动态库中一个函数的返回值 是CBitmap MFC类的。
本人想在窗口中显示此类包含的内容。怎么办?
关于使用MFC部分已通过。不会的是怎样能在Image中显示出里面包含的图像。
下面是该类的接口声明。
CBitmap* (GETPREVBITMAP)(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);
...全文
166
11
打赏
收藏
BCB调用动态库返回值使用MFC库的CBitmap类型
最近碰到一个难解决的问题。 本个调用一动态库,动态库中一个函数的返回值 是CBitmap MFC类的。 本人想在窗口中显示此类包含的内容。怎么办? 关于使用MFC部分已通过。不会的是怎样能在Image中显示出里面包含的图像。 下面是该类的接口声明。 CBitmap* (GETPREVBITMAP)(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
atulss
2010-08-17
打赏
举报
回复
对不起大家了,这两天没有时间上来。
周药师的回答根本就不搭边儿。
毛毛说的办法应该可行,我再试试。这个结贴。
Waiting4you
2010-08-13
打赏
举报
回复
对了,我在VS2008里取得的offBmp为4。
Waiting4you
2010-08-13
打赏
举报
回复
动态库居然返回一个包装类,这种设计~~事件上返回一个HBITMAP就没问题了。
不说了,既然已经遇上了,偶的建议是先打开VC(要和编译这个DLL的VC一样的版本,编译参数也要尽量相同),用offsetof(CBitmap,m_hObject)取得m_hObject成员在CBitmap中的相对位置,如int offBmp = offsetof(CBitmap, m_hObject)。
然后用BCB,声明改成char* (GETPREVBITMAP)(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);
取得这个char*指针后偏移offBmp就是HBITMAP了,接下来就好办鸟~~
ccrun.com
2010-08-13
打赏
举报
回复
毛毛的回答才有意义。CBitmap和TBitmap根本就是两个差别巨大的类,直接将CBitmap转换成TBitmap不出错才怪。
周药师
2010-08-12
打赏
举报
回复
我问你 你试了没?
atulss
2010-08-12
打赏
举报
回复
GetPrevbitmap 是动态库中定义的一个接口。我的那段代码是接口申明。
那代码是申请使用接口GetPrevbitmap。
CBitmap是MFC类,TBitmap是VCL类,结构本就不一样,是不能替换的。
周药师
2010-08-12
打赏
举报
回复
还没有到?
你不是已经用了GetPrevbitmap吗?
你new一下
Graphics::TBitmap *GetPrevbitmap =new Graphics::TBitmap();
//your code
atulss
2010-08-12
打赏
举报
回复
动态调用。申请接口就出错了,还没到new的阶段。
周药师
2010-08-12
打赏
举报
回复
new了没?
atulss
2010-08-12
打赏
举报
回复
试过,不行。
动态申请时就出错。
GetPrevbitmap=(GETPREVBITMAP)GetProcAddress(hEzdDLL,_T("GetPrevbitmap"));
if(GetPrevbitmap==NULL)
{
ShowMessage("GETPREVBITMAP Error");
return;
}
周药师
2010-08-12
打赏
举报
回复
用Graphics::TBitmap去试试
C和C++编程和学习文档
C和C++编程和学习文档 1 :指针变量名称以p为首字符,这是程序员通常在定义指针时的一个习惯2 :har * p; (int *)p 把p强制转换为int型 3.1 :指针的问题:指针应用时最好给予定义(初始化)这样可以保证指针的指向是程序员自己能够把握的。3.2 :指针的越界,这恐怕是最难查出的吧!
VC常见入门问题总结
VC常见入门问题总结1:fatal error C1010: unexpected end of file while looking for precompiled header directive该如何解决 如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的Settings,选择C/C++选项卡,从Category组合框中选中Precompile
vc小知识
TCHAR
类型
到BSTR
类型
的转换 //实现将TCHAR转换成BSTR
类型
inline BSTR TCHAR2BSTR(TCHAR* szBuffer) { WCHAR* wszBuff; #ifndef UNICODE //若未定义宽字符UNICODE,则将多字节转换为宽字节 wszBuff= new WCHAR[512]; MultiByte
c++/c编程资料
1 :指针变量名称以p为首字符,这是程序员通常在定义指针时的一个习惯2 :har * p; (int *)p 把p强制转换为int型 3.1 :指针的问题:指针应用时最好给予定义(初始化)这样可以保证指针的指向是程序员自己能够把握的。3.2 :指针的越界,这恐怕是最难查出的吧!
2010考研管理类联考综合能力答案解析.pdf
考研管理类联考综合能力答案解析,考研真题,考研历年真题,考研管理类联考历年真题,真题解析。
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章