社区
非技术区
帖子详情
请各位大虾告诉我!!!急急急~~~~~
coder_nullptr
2007-04-11 05:20:45
请问 Delphi 中怎么把 HWND 类型 和 TForm 对象关联
如
function HandleToForm(hWnd: HWND): TForm;
var
form : TForm;
begin
// 就是这里转换怎么写?谢谢!!
Result := form;
end;
...全文
144
5
打赏
收藏
请各位大虾告诉我!!!急急急~~~~~
请问 Delphi 中怎么把 HWND 类型 和 TForm 对象关联 如 function HandleToForm(hWnd: HWND): TForm; var form : TForm; begin // 就是这里转换怎么写?谢谢!! Result := form; end;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
coder_nullptr
2007-04-12
打赏
举报
回复
好奇怪,如果将DLL里面的代码改成
function GetModulePage(): TForm; stdcall;
begin
Application.CreateForm(TForm1, Form1);
Result := Form1;
end;
在 EXE 中调用所返回的 TForm 能够使用,如果改成
function GetModulePage(): HWND; stdcall;
begin
Application.CreateForm(TForm1, Form1);
Result := Form1.Handle;
end;
然后在 EXE 里用 frmTest := (FindControl(handle) as TForm); 所转回来的会出错,请各位大虾帮帮我!
coder_nullptr
2007-04-12
打赏
举报
回复
没有人回,自己顶!
coder_nullptr
2007-04-11
打赏
举报
回复
不行,问题还没有解决,如果我的 TForm 放在 DLL 中, 具体函数如下:
function GetModulePage(): HWND; stdcall;
begin
Form1 := TForm1.Create(nil);
Result := Form1.Handle;
end;
exports
GetModulePage;
然后在 EXE 中,调用 GetModulePage 函数所返回的 HWND, 怎么不行呢?
scroing
2007-04-11
打赏
举报
回复
顶~~~
wintergoes
2007-04-11
打赏
举报
回复
(FindControl(handle) as TForm).Caption :='Find By Handle';
Volatile关键字介绍
简述:volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”,可见性的意思是一个线程修改一个共享变量时,另一个线程可以读到这个修改的值,如果volatile使用恰当的话,它比synchronized的使用成本更低,因为它不会引起线程的上下文切换和调度。 在了解volatile关键字在java中的使用之前,我们需要先连接几个概念 java内...
volatile关键字详解
缓存一致性协议: 每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置成无效状态,当处理器要对这个数据进行修改操作的时候,会强制重新从系统内存里把数据读到处理器缓存里。在多线程环境下,CPU轮流切换线程执行,有可能某个线程修改了数据,准备回主内存,此时CPU切换到另一个线程修改了数据,并且写回到了主内存,此时就导致数据的不准确。的作用就是,当某个线程工作内存中的值与主内存中的值,如果不相同就会一直。
C#关键字volatile
在这个例子中,count字段被声明为volatile。在这里,hasData变量被声明为volatile,确保了生产者线程对hasData的修改能够被消费者线程及时看到,并且消费者线程对hasData的修改也能被生产者线程及时看到,从而保证了生产者 - 消费者模式的正确运行。例如,有两个线程,一个线程(线程 A)在不断地更新一个共享变量的值,另一个线程(线程 B)在读取这个共享变量的值。因为它要求对变量的每次访问都直接从主内存中进行,而不是从线程的工作内存(缓存)中进行,这会增加内存访问的开销。
C/C++编程语言中volatile关键字介绍
volatile关键字,最早出现于19世纪70年代,被用于处理MMIO(Memory-mapped I/O)带来的问题。在引入MMIO之后,一块内存地址既有可能是真正的内存,也有可能是映射的一个I/O端口。因此,读/写一个内存地址,既有可能是真正地操作内存,也有可能是读/写一个I/O设备。那么MMIO为什么需要引入volatile关键字呢?a = *p;// 语句1b = *p;// 语句2*p = a;// 语句3*p = b;// 语句4在上述代码片段中,指针“p”既有可能指向一个。
非技术区
830
社区成员
53,568
社区内容
发帖
与我相关
我的任务
非技术区
Delphi 非技术区
复制链接
扫一扫
分享
社区描述
Delphi 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章