close()与EXIT()

tjm 2001-08-01 12:22:30
请那位大侠讲一讲下面函数与方法的区别:
form->close()
application->terminate()
exit()


...全文
490 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
stanely 2001-08-05
  • 打赏
  • 举报
回复
exit(1)好像是在unix下调试c程序用的多把。
tjm 2001-08-05
  • 打赏
  • 举报
回复
是否还会来人?看看还能加多少分。
tjm 2001-08-05
  • 打赏
  • 举报
回复
多谢各位指教。
wyb_star 2001-08-05
  • 打赏
  • 举报
回复
form->close()同form->Hide()是一个意思。(主窗口同exit(1);)
application->terminate();就是让你连反映都没有,就完玩了。
exit();不用说,就是你该白白了。
whitelion 2001-08-05
  • 打赏
  • 举报
回复
cc
tjm 2001-08-05
  • 打赏
  • 举报
回复
夜半三更再UP
tjm 2001-08-04
  • 打赏
  • 举报
回复
up
书生 2001-08-04
  • 打赏
  • 举报
回复
to: wao(wao) 
谢谢,受教了。 :)
「已注销」 2001-08-03
  • 打赏
  • 举报
回复
又一个哥们跳了

@_@
wao 2001-08-03
  • 打赏
  • 举报
回复
to lluunn007:
exit()是C标准库,你可以在windows程序里调用的.其实你完全可以写个程序试试.只不过microsoft不推荐这样做了吧.其实,我怀疑ms在自己的库中调用了了这个函数.至少c++builder的rtl运行库中的assert就是直接调用exit退出程序的.
wao 2001-08-03
  • 打赏
  • 举报
回复
Application不是一个窗口,所谓接受消息是这样的:
windows为每个线程维护一个消息队列.所有的消息都依次存放在消息队列中.
每个线程通过调用GetMessage 或者 PeekMessage从队列中取出消息,然后通过 DispatchMessage 调用分发到线程拥有的各个窗口.因此你完全可以创建一个消息循环而不创建任何窗口,这时这个进程是活动的,但是却没有任何窗口.
jearry_zhou 2001-08-03
  • 打赏
  • 举报
回复
oh
mysun 2001-08-03
  • 打赏
  • 举报
回复
我以为程序中任何地方用了:Application->terminates();系统会释放该应用程序占用的资源。
包括new()出来的指针。
tjm 2001-08-03
  • 打赏
  • 举报
回复
再次加分,就20分了,全献给热心的朋友。
书生 2001-08-03
  • 打赏
  • 举报
回复
void __fastcall Close(void);

Description

Call Close to close a form.

Close calls the CloseQuery method to determine if the form can close. If CloseQuery returns false
, the close operation is aborted. Otherwise, the OnClose event occurs.

Note: When the main form of the application closes, the application terminates.


Exit只有Dos和C使用,BCB好象不用了。
VSaber 2001-08-03
  • 打赏
  • 举报
回复
to wao(wao):
关于application是不是隐藏窗口的问题不争了,我也拿不出证据来,呵呵,等我找到证据了再来找你麻烦!哈哈
tjm 2001-08-02
  • 打赏
  • 举报
回复
受益,受益,再UP
free1949 2001-08-02
  • 打赏
  • 举报
回复
有见地!
VSaber 2001-08-02
  • 打赏
  • 举报
回复
to wao(wao):
Application的确是一个窗口,我看了以后请教了几位高手,呵呵
如果不是窗口,它怎么接收消息呢?呵呵

========================================================================
关于内存释放的问题,我可以解释一下:
如果你new了一块内存,如果不delete掉的话,进程结束,也就是说应用程序结束的时候,它会被系统释放。但是为什么都要求分配的内存必须自己释放掉呢?
这是因为如果你的程序是一个长时间运行的服务器程序之类的花,假如你某个函数有一个new的指针没有释放,则每次调用此函数都会造成内存泄漏,也就是每次都分配一块内存出来,直到系统内存被吞噬完。
记住一点:进程结束,系统会为你释放所有内存,但是一个函数返回的时候是只会释放栈内的东西,而不会管理堆上的东西,动态分配的内存是在堆上创建的,每次调用函数都会分配新的内存,原有内存不释放。结果自然不必说了,呵呵

今天去了新公司,唉,其他都不错,可惜就是网络太差了,慢不说,更重要是连大富翁论坛和csdn都上不去了!以后只能每天晚上回来看看了,气死我了!

goadengoat 2001-08-02
  • 打赏
  • 举报
回复
请问terminate是程序中断还是线程中断?
加载更多回复(27)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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