win32程序是利用编程语言直接调用windows api编写的程序,可以在任何装有正确windows的机器上运行,程序员发挥的空间也最大,能实现在该操作系统中可以编程实现的任何功能。
而.net的窗体应用程序是一种托管代码,无论你是用c++\c#还是vb编写,只能在.net环境中应用,就是说你编译好的软件在没有.net framework的机器上是不能运行的,而且功能的实现也要受framework的限制,不能随心所欲。
可视化的除了窗体程序,你也可以选择mfc,代码编写量比纯api编程要小的多,尽管比.net复杂,但应用起来更灵活,而且这个是不依赖.net框架的。
win32包括mfc可以调用操作系统允许的任何程序(甚至可以通过某种技术调用操作系统不允许的操作如hook api技术),当然可以调用窗体程序。
微软.Net Framework整个其实是学习了Java的那种思想。你用C#写完并编译成的exe程序并不是计算机可以直接执行的本地代码,是一种中间码。只有安装了.Net Framework之后才能运行。Java程序也是需要安装JRE之后才能运行的。
如果要写出不依赖.Net Framework的win32程序,比较正宗的搞法是用Vistual Studio里面的C++来写。
还有个办法,微软从Vista操作系统开始都自带了.Net Framework,Vista带的版本是3.5。如果你的程序依赖的.Net Framework版本低于3.5,微软是可以兼容的。比较简单的方法是你用早期的Vistaual Studio版本开发你的程序,然后放到Vista或者Win7下,默认就可以运行了。
另外关于兼容,有时候也不是默认兼容,还需要修改一些配置,微软的版本管理看起来比较乱。关于版本兼容性,你可以参考这个链接:
http://social.msdn.microsoft.com/Forums/zh-CN/10f63f4d-dc80-48b8-aef5-f15f0bad61ac/net40
win32,.net,mfc,布布扣,bubuko.com
win32,.net,mfc