delphi +线程 +dll之间的切换

zerockiss 2015-10-23 07:26:34
delphi开发的客户端主程序,调用了一个dll【带form的】,dll里启了一个线程,然后开启客户端里另一个dll【带form的】,然后再切回启了线程的dll,就报错了,报错内容如下:
Project mainform.exe raised exception class EAccessViolation with message 'Access violation at address 4013D258 in module 'vcl60.bpl'. Read of address 00000004'. Process stopped. Use Step or Run to continue.
...全文
713 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-10-28
  • 打赏
  • 举报
回复
线程与DLL是两个概念,如何切换?
SupermanTm 2015-10-27
  • 打赏
  • 举报
回复
VCL 本身不支持多线程,你在线程里不可以直接操作 VCL 对象的属性,需要用SendMessage之类的方法来传递
tcmakebest 2015-10-26
  • 打赏
  • 举报
回复
原因太复杂,楼主自己查
zerockiss 2015-10-26
  • 打赏
  • 举报
回复
有木有人帮忙呀
zerockiss 2015-10-23
  • 打赏
  • 举报
回复
望大神们指导
FastMM5 FastMM 是 Embarcadero Delphi 应用程序的快速替换内存管理器,它可以跨多个线程和 CPU 内核很好地扩展,不易出现内存碎片,并支持共享内存而无需使用外部 .DLL 文件。 FastMM5-social.png 版本 5 是 FastMM 的完全重写。它是从头开始设计的,旨在同时保持 4.992 版的优势并解决其缺点: 跨多个 CPU 内核的多线程扩展得到了大幅改进,而不会出现内存使用量激增。它可以配置为针对任意数量的 CPU 内核进行近乎线性的扩展。 在 Fastcode 内存管理器基准测试工具中,FastMM 5 在单线程基准测试中的得分比 FastMM 4.992 高 15%,在多线程基准测试中高 30%。(I7-8700K CPU,启用 EnableMMX 和 AssumeMultithreaded 选项。 它是完全可配置的运行时。无需更改条件定义并重新编译即可更改选项。(但是,它与许多版本 4 条件定义向后兼容。 默认情况下,Debug 模式使用与版本 4 (FastMM_FullDebugMode.dll) 相同的调试支持库,但也支持自定义堆栈跟踪例程。调用 FastMM_EnterDebugMode 切换到调试模式 (“FullDebugMode”),调用 FastMM_ExitDebugMode 返回性能模式。调用可能是嵌套的,在这种情况下,调试模式将在最后一次 FastMM_ExitDebugMode 调用后退出。 支持所有块的 8、16、32 或 64 字节对齐。调用 FastMM_EnterMinimumAddressAlignment 请求最小块对齐,FastMM_ExitMinimumAddressAlignment 撤销之前的请求。调用可能是嵌套的,在这种情况下,最粗略的对齐请求将生效。 所有事件通知(

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧