求救!! 主进程与线程通信问题

KiGhost 2005-06-02 10:41:25
线程函数在DLL里....
DWORD __stdcall MyFun(LPVOID lpParam);

我在EXE中要发送多个参数到线程函数中..

struct _tagInfo
{
int Field1;
......
};

于是我定义了一个结构,把结构指针传给 线程函数中 lpParam 参数中..

但此时发觉了很多问题... _tagInfo 的结构何时释放内存呢?

还有.......一般主线程和线程之间的通信是通过哪些方式来实现呢?
...全文
179 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
betsyalan 2005-06-08
  • 打赏
  • 举报
回复
一般原则就是谁申请谁释放,在你创建线程的时候new了一个结构,那么等你线程用完退出后,你调用DLL的线程的函数就可以释放该结构了,所以你必须有个机制通知调用的exe,你的dll线程已经完成任务退出了。
hony688 2005-06-08
  • 打赏
  • 举报
回复
主线程和线程之间的通信建议你用自定义消息为好,这样不容易引起程序结构的混乱。同时可以考虑自己定义一个结构,结构中包含你想封装的数据 包括主框架窗口的hwnd等,把这个结构作为 wparam类型的的参数传递
JohnTitor 2005-06-06
  • 打赏
  • 举报
回复
在子线程结束后在exe中的主线程里释放
老夏Max 2005-06-02
  • 打赏
  • 举报
回复
传递主框架窗口指针
oyljerry 2005-06-02
  • 打赏
  • 举报
回复
exe中释放,传递进线程
KiGhost 2005-06-02
  • 打赏
  • 举报
回复
内存管理一般是使用本地管理的方法。
主线程和线程之间的通信一般是通过主线程传递一个指针,也就是再创建线程的时候传递进去的。

主线程传递指针给子线程....也有问题呀...就是这个指针所指的内存几时释放呢?

而且一定要在EXE中释放..不能在DLL中.不然会出错.
KiGhost 2005-06-02
  • 打赏
  • 举报
回复
内存管理一般是使用本地管理的方法。
主线程和线程之间的通信一般是通过主线程传递一个指针,也就是再创建线程的时候传递进去的。

主线程传递指针.我也发现了几个问题....这个指针所指的空间什么时候释放呢? 而且要在EXE释放..不能在DLL,不然会出错.
younggle 2005-06-02
  • 打赏
  • 举报
回复
内存管理一般是使用本地管理的方法。
主线程和线程之间的通信一般是通过主线程传递一个指针,也就是再创建线程的时候传递进去的。
KiGhost 2005-06-02
  • 打赏
  • 举报
回复
顶...............

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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