DLL释放

今晚又失眠 2011-11-07 01:46:39
一个主程序,通过菜单MENU去调用一个DLL,这个DLL里面有对话框,其实就是一个小模块。现在想实现:在DLL的对话框中,如果点击退出按钮,结束DLL本身的对话框同时,把主程序调用的DLL也释放掉。
...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gameslq 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jxcr1984 的回复:]

引用 3 楼 mjx1981 的回复:

如果菜单可以多次调用那个模块,也没必要关闭模块就freelibrary, 主程序启动的时候就Load一次,退出主程序时,如果模块是打开的,就先关闭模块,在free一次. 省的调来调去的.


现在的问题是:在DLL中会打开txt文件。我每次file.open的时候,正常。第二次点击菜单,加载这个DLL时,在DLL里打开这个文件file.open……
[/Quote]
file.open可以共享读和共享写。。。,根据你的需要来做。
alexander_david 2011-11-07
  • 打赏
  • 举报
回复
貌似是dll内部没有关闭文件,如果有dll源码,最好是在dll内部,当文件使用完毕,关闭文件。
今晚又失眠 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 oyljerry 的回复:]

引用 4 楼 jxcr1984 的回复:
引用 3 楼 mjx1981 的回复:

打开的就要close关闭,否则就不让第二次打开那个文件
[/Quote]

都有close掉的。可是一直是报那个错误
oyljerry 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jxcr1984 的回复:]
引用 3 楼 mjx1981 的回复:

如果菜单可以多次调用那个模块,也没必要关闭模块就freelibrary, 主程序启动的时候就Load一次,退出主程序时,如果模块是打开的,就先关闭模块,在free一次. 省的调来调去的.


现在的问题是:在DLL中会打开txt文件。我每次file.open的时候,正常。第二次点击菜单,加载这个DLL时,在DLL里打开这个文件file.open时……
[/Quote]
打开的就要close关闭,否则就不让第二次打开那个文件
今晚又失眠 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mjx1981 的回复:]

如果菜单可以多次调用那个模块,也没必要关闭模块就freelibrary, 主程序启动的时候就Load一次,退出主程序时,如果模块是打开的,就先关闭模块,在free一次. 省的调来调去的.
[/Quote]

现在的问题是:在DLL中会打开txt文件。我每次file.open的时候,正常。第二次点击菜单,加载这个DLL时,在DLL里打开这个文件file.open时,出错,GetLastError = 32

〖32〗-进程无法访问文件,因为另一个程序正在使用此文件。
mjx1981 2011-11-07
  • 打赏
  • 举报
回复
如果菜单可以多次调用那个模块,也没必要关闭模块就freelibrary, 主程序启动的时候就Load一次,退出主程序时,如果模块是打开的,就先关闭模块,在free一次. 省的调来调去的.
oyljerry 2011-11-07
  • 打赏
  • 举报
回复
退出时,给主程序一个消息等,然后主程序FreeLibrary释放
gaowg 2011-11-07
  • 打赏
  • 举报
回复
先loadlibrary载入库,找到函数入口,调用函数,点击退出按钮后,库通过消息或回调通知主程序freelibrary.

15,471

社区成员

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

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