社区
Windows SDK/API
帖子详情
急,请问在DLL中怎么使用多线程
jxqn_liu
2013-09-06 11:06:54
现在我的情况是这样的,我使用DLL的一个过程去操作一个程序后,弹出的窗体是模式对话框,这样的情况下就会阻断后面的操作。
请问有什么办法可以弹出窗体后再进行后面的操作吗?
急急急急急急急急!!!
...全文
638
7
打赏
收藏
急,请问在DLL中怎么使用多线程
现在我的情况是这样的,我使用DLL的一个过程去操作一个程序后,弹出的窗体是模式对话框,这样的情况下就会阻断后面的操作。 请问有什么办法可以弹出窗体后再进行后面的操作吗? 急急急急急急急急!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2013-09-21
打赏
举报
回复
只要不在 DLL的入口点开线程,基本都没事。
jxqn_liu
2013-09-06
打赏
举报
回复
引用 3 楼 m617105 的回复:
要不就不要用模态的,要不后面的操作采用线程的方式来进行。
我是想采用线程,但是在DLL中使用线程和在EXE中使用有点不同 不知道怎么在DLL中使用,烦请指教
浩南_哥
2013-09-06
打赏
举报
回复
要不就不要用模态的,要不后面的操作采用线程的方式来进行。
jxqn_liu
2013-09-06
打赏
举报
回复
引用 1 楼 m617105 的回复:
你是想要弹出的窗体阻断操作?还是不阻断操作?
不阻断,也就是那窗体弹出后,后面的那些操作照样进行 因为我后续的操作就是对弹出窗体的控制!
浩南_哥
2013-09-06
打赏
举报
回复
你是想要弹出的窗体阻断操作?还是不阻断操作?
s11ss
2013-09-06
打赏
举报
回复
MyThread.Resume; 弹出模式对话框;
iamduo
2013-09-06
打赏
举报
回复
那就写成两个线程吧。 一个用来控制,是否ShowModal, 另一个先判断,是否ShowModal了,如果是,则处理什么什么。
DLL
的
多线程
为了解决这个问题,我们可以通过TLS机制,为每一个
使用
该全局变量的线程都提供一个变量值的副本,每一个线程均可以独立地改变自己的副本,而不会和其它线程的副本冲突。如果一个初始化函数是在线程A
中
调用的,而核心功能函数是在线程B
中
调用的,那么线程A初始化函数的资源就无法对应线程B
中
的核心功能,此外还有核心功能函数间的数据传递,这样的
DLL
就不是线程安全的,必然导致错误。这是一个优点也是一个缺点。但如果你要保持函数的线程安全,那么静态变量是不能用的,因为静态变量是全局的,是属于进程的,也就是属于进程内线程共享的。
Dll
的创建与
使用
首先提出几个问题,什么是库文件、什么是静态库、什么是动态库,在windows
中
经常有看到.
dll
和.lib文件,他们是什么? 库、静态库、动态库 库是写好的,现有的,成熟的,可以复用的代码。现实
中
每个程序都要依赖很多基础的底层库, 不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说,库是一种可执行代码的二进制形式, 可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.
dll
)。所谓静态、动态是指 链接。 lib(静态库)与
dll
(动态库)文件最大区别在调
dll
中
多线程
使用
回调函数
//
dll
头文件 #include #include #include #define MYLIBAPI extern "C" __declspec(
dll
export); typedef int (WINAPI *PFCALLBACK)(); MYLIBAPI voi
多线程
调试
DLL
(/MDd)
123
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章