第 10 个待答问题,有人回答吗?(100分)

  • 主题发起人 主题发起人 szchengyu
  • 开始时间 开始时间
S

szchengyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我总共提过 10 多个问题,不知道是否问题太低级,还是因为太难(真的吗?),大家都不愿意回答
这次希望能有人(当然高手最好)指点:

我想与 VC 的程序共享几个位图,每个位图需要将 TBitmapInfo 结构和图象体在内存中的指针传给VC的程序,
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
这两个东西我该怎么表示出来呢?

在线等待!
 
TBitmapInfo有什么用?这不是通用格式吗?
内存中的指针有什么用?别的进程的指针你得到了也不能用
 
位图是全局变量,可以和VC写的DLL共享,
 
用内存映象文件操作比较好.
 
xwings兄:

好主意!
但我还是想知道这种解决办法:)
 
>>位图是全局变量

怎样“全局”的? 你把它弄成全局的时候肯定返回了一个句柄吧? 传递这个局并就可以了
 
一个过客:
Delphi 中位图是 TBitmap,它的句柄是什么东东

TBitmap.Handle 只是一个 HBitmap 类型的东西, 并不是位图体的指针吧?
 
我想. 首先是创建一个内存映象文件. 然后先把bmpinfo结构写进去. 然后把位图数据也写进去
然后发个消息通知vc程序.
在VC中也创建(打开)相同的内存映象文件. 然后按照约定的结构读出来就可以了.

其实就好像delphi把位图写到本地文件. 然后vc再打开. 不过用内存映象很快罢了.
 
图象体指针已经解决。

第一个问题看似简单,但就是不知如何下手,
TBitmap 里已经封装了这个东西,但它是私有数据,我要怎么才能取出它呢?
 
住在dll 里。
 
sim_might:
什么意思?请明示。

各位快来呀,别让这个问题又像前面的问题一样,没有下文:((
 
唉。。。。。。。。。。。。。

这个问题就那么难吗?
其实看看 VCL 源码就基本知道答案了,如果看 FastBmp 更简单。
 
Delphi中的 TBitmap.Handle, 是Windows中的HBITMAP, 就是Bitmap圖形載入到內存後所
得到的句柄, 可運用於繪圖的API; 跟據此Handle, 就可以以API, 來將此Handle圖形畫出;
TBitmapInfo也是windows定義的結構, 用來描述一個Bitmap的資設,
有了這個結構, 可以透過CreateBitmapIndirect 來取得Bitmap 的Handle;
如果要從Handle取回此結構, 可以運用GetObject,
如 GetObject(Bitmap.Handle, SizeOf(TBitmapInfo), @BitmapInfo)
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部