界面和程序的关系————刚学VC,一直困扰的一个说不太清的有关问题
界面和程序的关系————刚学VC,一直困扰的一个说不太清的问题
这方面感到特迷茫:
Window程序界面是是编译时生成的还是运行时生成的?通过SDK创建窗口类、注册窗口类、生成显示窗口类像是运行生成的,但通过编辑对话框资源文件却又像编译时就生成好了。
在VC里设计对话框等资源文件,编译时怎么处理的,运行时又是怎么生成的?
VC里用资源号ID就可以确定资源是怎么处理的,资源文件被编译到可执行文件里了吗?
还有一个最重要的问题就是怎样随心所欲生成所要的界面,通过一大堆代码来生成界面太痛苦了。
------解决方案--------------------
在下所学不深,但是也冒昧的对楼主问题发表下粗浅的看法,供楼主参考。
个人认为,窗口类在SDK这个层面上,是程序的核心,开始的部分,先完成创建与注册之类这些操作。
至于对话框与菜单等资源类,是编译时会进行处理的,和窗口确实有所不同。
关于资源在编译时的处理,以及编译之后资源在exe中的分布,楼主可以看下Win32汇编方面的文档,关于PE结构就是说这个的。
至于快速的生成界面,VC做这个不是十分的适合,Delphi或VB做界面还是比较快和省事的,楼主可以考虑用VB或Delphi调用VC做的dll,这样可以比较充分的发挥各自的优势。
------解决方案--------------------
我也没学多久VC,我觉得界面当然是运行时生成的了,通过SDK通过编程生成.exe文件,exe文件内部的机器码是编译生成的,编辑对话框资源文件可以看到对话框等东西,最后还要编译到exe文件吧。
资源文件是包含在exe文件里,因为你可以在其他机器上看到同样的东西,运行时候就是机器内部码了。。不了解具体内容
资源string table里面有ID号对应的值
学习VC就应该按着它的要求做啊。。不然人人都随心所欲的话也不好统一标准和学习啊
------解决方案--------------------
界面是运行时生成的。编辑资源是“可视化”程序设计,便于开发,但实际运行时创建的界面不一定与编辑资源时相同。项目中的资源会被编译、连接到可执行文件里面,程序运行时从文件中取出资源,根据资源中的信息来创建相应的控件。
------解决方案--------------------
资源就是一种方便你开发的手段,
实际上这个世界本来没有界面的,在显示器上显示字符,显示多了,也就出来界面了。
都是画上去的了,界面只能是运行期画出来啊,
就是在编译期,只不过是用一些手段,说明了到时候怎么画,
你比如说Java的Swing,很多时候都是靠代码堆界面。也看不到什么资源文件,也很少有UI的编辑器。
------解决方案--------------------
另外一点,真正漂亮的界面都是代码堆出来的,靠脱脱拽拽控件,永远就只能做点中规中矩的事情。
------解决方案--------------------
个人觉得可视化设计的时候只是将参数提供给vc,编译运行的时候根据你可视化设计的结果创建界面,并嵌入相应的资源(图标等).........
------解决方案--------------------
所有界面都是运行的时候生成 的,在资源里编辑的界面,只是IDE显示给你看,以方便你编译的,实际保存的内容是一个描述你所编辑界面的文本文件,这个文本文件保存在生成的二进制文件中,以运行的时候读出来再生成真正的界面
------解决方案--------------------
漂亮的界面都是界面都是自己写出来的,VC本身的界面控件只是考虑功能的实现并不注重美观。
------解决方案--------------------
Window程序界面是是编译时生成的还是运行时生成的?
运行时生成
在VC里设计对话框等资源文件,编译时怎么处理的,运行时又是怎么生成的?
可以用记事本打开资源文件,后缀时.rc
VC里用资源号ID就可以确定资源是怎么处理的,资源文件被编译到可执行文件里了吗?
可以看resource.h文件
还有一个最重要的问题就是怎样随心所欲生成所要的界面,通过一大堆代码来生成界面太痛苦了。
没有好的方法。
------解决方案--------------------
------解决方案--------------------
你可以参考下<MFC深入浅出>中关于可执行文件是如何生成的,首先将每个代码文件*.cs编译成目标文件*.obj,然后链接器把若干个*.obj与rc文件链接在起来,产生exe文件.所以窗体的资源信息在链接那一步加入到程序中.
------解决方案--------------------
在资源文件rc中每个资源前总有一个标识符,有时可能还有Begin 与end,其结构有点复杂,你可以参考如下网址:
http://tech.ccidnet.com/art/1077/20050225/216051_1.html
希望对你有用.
------解决方案--------------------
界面就是相当于把代码IDE
这方面感到特迷茫:
Window程序界面是是编译时生成的还是运行时生成的?通过SDK创建窗口类、注册窗口类、生成显示窗口类像是运行生成的,但通过编辑对话框资源文件却又像编译时就生成好了。
在VC里设计对话框等资源文件,编译时怎么处理的,运行时又是怎么生成的?
VC里用资源号ID就可以确定资源是怎么处理的,资源文件被编译到可执行文件里了吗?
还有一个最重要的问题就是怎样随心所欲生成所要的界面,通过一大堆代码来生成界面太痛苦了。
------解决方案--------------------
在下所学不深,但是也冒昧的对楼主问题发表下粗浅的看法,供楼主参考。
个人认为,窗口类在SDK这个层面上,是程序的核心,开始的部分,先完成创建与注册之类这些操作。
至于对话框与菜单等资源类,是编译时会进行处理的,和窗口确实有所不同。
关于资源在编译时的处理,以及编译之后资源在exe中的分布,楼主可以看下Win32汇编方面的文档,关于PE结构就是说这个的。
至于快速的生成界面,VC做这个不是十分的适合,Delphi或VB做界面还是比较快和省事的,楼主可以考虑用VB或Delphi调用VC做的dll,这样可以比较充分的发挥各自的优势。
------解决方案--------------------
我也没学多久VC,我觉得界面当然是运行时生成的了,通过SDK通过编程生成.exe文件,exe文件内部的机器码是编译生成的,编辑对话框资源文件可以看到对话框等东西,最后还要编译到exe文件吧。
资源文件是包含在exe文件里,因为你可以在其他机器上看到同样的东西,运行时候就是机器内部码了。。不了解具体内容
资源string table里面有ID号对应的值
学习VC就应该按着它的要求做啊。。不然人人都随心所欲的话也不好统一标准和学习啊
------解决方案--------------------
界面是运行时生成的。编辑资源是“可视化”程序设计,便于开发,但实际运行时创建的界面不一定与编辑资源时相同。项目中的资源会被编译、连接到可执行文件里面,程序运行时从文件中取出资源,根据资源中的信息来创建相应的控件。
------解决方案--------------------
资源就是一种方便你开发的手段,
实际上这个世界本来没有界面的,在显示器上显示字符,显示多了,也就出来界面了。
都是画上去的了,界面只能是运行期画出来啊,
就是在编译期,只不过是用一些手段,说明了到时候怎么画,
你比如说Java的Swing,很多时候都是靠代码堆界面。也看不到什么资源文件,也很少有UI的编辑器。
------解决方案--------------------
另外一点,真正漂亮的界面都是代码堆出来的,靠脱脱拽拽控件,永远就只能做点中规中矩的事情。
------解决方案--------------------
个人觉得可视化设计的时候只是将参数提供给vc,编译运行的时候根据你可视化设计的结果创建界面,并嵌入相应的资源(图标等).........
------解决方案--------------------
所有界面都是运行的时候生成 的,在资源里编辑的界面,只是IDE显示给你看,以方便你编译的,实际保存的内容是一个描述你所编辑界面的文本文件,这个文本文件保存在生成的二进制文件中,以运行的时候读出来再生成真正的界面
------解决方案--------------------
漂亮的界面都是界面都是自己写出来的,VC本身的界面控件只是考虑功能的实现并不注重美观。
------解决方案--------------------
Window程序界面是是编译时生成的还是运行时生成的?
运行时生成
在VC里设计对话框等资源文件,编译时怎么处理的,运行时又是怎么生成的?
可以用记事本打开资源文件,后缀时.rc
VC里用资源号ID就可以确定资源是怎么处理的,资源文件被编译到可执行文件里了吗?
可以看resource.h文件
还有一个最重要的问题就是怎样随心所欲生成所要的界面,通过一大堆代码来生成界面太痛苦了。
没有好的方法。
------解决方案--------------------
------解决方案--------------------
你可以参考下<MFC深入浅出>中关于可执行文件是如何生成的,首先将每个代码文件*.cs编译成目标文件*.obj,然后链接器把若干个*.obj与rc文件链接在起来,产生exe文件.所以窗体的资源信息在链接那一步加入到程序中.
------解决方案--------------------
在资源文件rc中每个资源前总有一个标识符,有时可能还有Begin 与end,其结构有点复杂,你可以参考如下网址:
http://tech.ccidnet.com/art/1077/20050225/216051_1.html
希望对你有用.
------解决方案--------------------
界面就是相当于把代码IDE