long型数组转指针
在函数 ABC(long pImage)中调用Bitblt,其中Bitblt的第五个参数CDC* pSrcDC想用到pImage数据,该怎么实现?请高手赐教
个人认为是不是先要把pImage转换成指针型,该如何转换?
[解决办法]
变量类型不是可以随便转换的,这也算C的一个弊病。不是什么东西用CDC*强制转换就能当CDC*用的。
你的问题是将这块数据当作位图来用,但是没有位图头,因此需要自己构建一个位图头,然后用SetDIBSection绘制,或者用CreateDIBSection创建一个位图。
[解决办法]
自己写个强制转化过程嘛. 如果你确定你传来的数据符合CDC的格式规范.
[解决办法]
LZ的问题真是奇怪,pImage是什么类型的位图结构?多少位色的?多少长宽的?这些东西不知道的话,怎么画?如果这些东西知道了的话,不用文件头,可以是可以,就是SetPixel()了,不过也一样要先创建一个缓冲CDC和HBITMAP,再SetPixel()上去,这效率也太低了吧?考虑效率问题,还是自己填一个文件头,用CreateDIBSection来创建一个HBITMAP,然后创建一个CDC,用SelectObject把HBITMAP选进去,这样才能得到你要的BitBlt的参数。