`

What the f*** of Visual C++?

阅读更多
一直崇拜c/c++的牛人,崇拜那些只有几百K甚至几十K的程序。

我知道只有C/C++可以帮助我。

我的内心发出狂热的呼喊:我要学C++

于是无奈之下安装了N个G的Visual studio。。。

Visual C++,我回来了,请不要抛弃我,虽然以前我没有耐心的学习你。。。

我潜心阅读MSDN的文档。。。

MFC,不是我想要的。。。一个很莫名奇妙的框架,以前就是他这个第三者破坏了我和C++良好的感情

Winform是什么??原来是披着C++外衣的.net狼。

我要的是最美最纯的C,接受C++其实是一种妥协,但还要我接受这些浮华的勒涩吗?NO!!!

我知道,windows下我也可以用printf来写最纯的C,但是,我们还需要GUI,除了要单纯的心,我们要一个美丽的脸庞。

GDI、GDIPlus,WIN API,非常好,我终于找到我的梦中情人了,我要的就是这样的最单纯的程序。

我潜心的读相关的文档,就像在读着盼望已久的情书。。。

TRUE,FALSE,VOID,怎么不是 true ,false ,void,我是不是看花了。

WCHAR NWPSTR, LPWSTR, PWSTR; 。。。 我理解这良苦用心,希望我更容易看懂。

INT_PTR,LRESULT 。。。

虽然我很爱她,但我终于忍不住对她发火了:美女,请问你真的是C小姐吗?你可以正常点说话吗?

Please help me , How could I found my Miss C ?

===================================
最后补充一下,看了下WCHAR,LPWSTR这些玩意的定义,最终是用到了 __wchar_t 这个非标准的关键字。
MS定义这些别名我想也是为了适应将来的编译器变化。
另外在32位和64位操作系统中,int、long、的长度也是不一样的,甚至64位windows和64位的 nix的long长度也不一样。
请看此文:一个长整数的自述
说到底 c/c++ 标准还不完善,但是我比较不满“Visual C++”的是,他太special了。
分享到:
评论
51 楼 jasongreen 2009-11-17  
mikeandmore 写道
linkobe 写道
一直在想chrome和ff这样的是用什么写的界面......

linux下都是gtk写的。。

chrom的windows界面据说是wtl
因此,我也打算用wtl
对了,我就是被鄙视的楼主
50 楼 geminiyellow 2009-11-17  
dch1287 写道
mikeandmore 写道
egmkang 写道
night_stalker 写道


Visual C++ 的弊病是对 C 语言的支持很差,不支持 C99 标准,十年过去了,连 VS 2010 都不支持 C99 ……


VC从来都没想过支持C99.

为啥。。。。。


只能说支持得不完整,人家说是因为没有用户需求,你若有需求,尽管提好了,他们很愿意接受!
Visual C++ Team Blog 写道

Now, the Visual C++ compiler team receives the occasionally question as to why we haven’t implemented C99.  It’s really based on interest from our users.  Where we’ve received many requests for certain C99 features, we’ve tried to implement them (or analogues).  A couple examples are variadic macros, long long, __pragma, __FUNCTION__, and __restrict.  If there are other C99 features that you’d find useful in your work, let us know!  We don’t hear much from our C users, so speak up and make yourselves heard

http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx

哎,谁让他们用英文写呢,看不懂阿。
49 楼 dch1287 2009-11-17  
mikeandmore 写道
egmkang 写道
night_stalker 写道


Visual C++ 的弊病是对 C 语言的支持很差,不支持 C99 标准,十年过去了,连 VS 2010 都不支持 C99 ……


VC从来都没想过支持C99.

为啥。。。。。


只能说支持得不完整,人家说是因为没有用户需求,你若有需求,尽管提好了,他们很愿意接受!
Visual C++ Team Blog 写道

Now, the Visual C++ compiler team receives the occasionally question as to why we haven’t implemented C99.  It’s really based on interest from our users.  Where we’ve received many requests for certain C99 features, we’ve tried to implement them (or analogues).  A couple examples are variadic macros, long long, __pragma, __FUNCTION__, and __restrict.  If there are other C99 features that you’d find useful in your work, let us know!  We don’t hear much from our C users, so speak up and make yourselves heard

http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx
48 楼 mikeandmore 2009-11-17  
egmkang 写道
night_stalker 写道


Visual C++ 的弊病是对 C 语言的支持很差,不支持 C99 标准,十年过去了,连 VS 2010 都不支持 C99 ……


VC从来都没想过支持C99.

为啥。。。。。
47 楼 dch1287 2009-11-17  
visualcatsharp 写道
dch1287 写道
visualcatsharp 写道
dch1287 写道
看看这个 Qt斯密哒
#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a(argc, argv);

    QPushButton hello( "Hello world!", 0);
    hello.resize(100,30);

    //a.setCentralWidget(&hello);
    hello.show();
    return a.exec();
}


再看看这个
http://www.blogjava.net/lusm/archive/2009/05/31/175563.html
和这个
http://www.kuqin.com/cpluspluslib/20070912/1051.html

------------------------------------------------------------------------
引用
如果GTK可用,那QT和MFC不是一样么。

ps:MFC那种XX(XX任意想象)怎能和Qt相比


就凭你也够资格说mfc不及qt?

说MFC不行并不是我的观点(应该是人尽皆知的观点了),甚至是M$自己的设计,架构人员的观点,如果你看过一些.Net、Win Form类库设计方面的文章,看看.Net设计师自己怎么阐述MFC曾今的ugly设计以及他们是如何改进的等等

还有,人身攻击出现在这里,与我无害,与你无益。


你一句话就将mfc忽略了,你还敢说人家人身攻击你。
现在给人说了你一句,心里就发虚,立刻发表与自己无关的声明。
我看你这个人真够心虚的。
任何语言包括任何框架都有它的弊端。
你这么爱比较,那为什么不比较一下qt与mfc的性能。

1. 为何非要针对人呢,楼主发帖目的是说出自己的困惑,不过是想听听大家的见解,请仔细看楼主的发言。。(你我之间的攻击于他的发帖有几毛钱关系、几毛钱价值?)

2. 不是发表与自己无关的声明,而是确实我没有资格可以发表这样的观点,不过告诉你我听来的这个观点的出处,为这个观点的可信度做辩护而已。

3. qt和mfc其实没什么可比性,你在哪个 非Win OS 上可以用mfc写程序?现在在Win上写窗口程序,不直接忽略MFC,不考虑WTL、Win Form?MFC(虽然版本号随着VS一直在提高)还有多少新系统会用。

4. 其实一开始的那个PS想说的是,从研究源码的角度来说,mfc确实不如qt值得研究,由于历史原因,它的很多设计确实不值得你去学习(对不起,我又心虚了)。

5. 最后一点,我确实没资格说mfc不及qt, 我确实是心虚的,我给您老人家陪不是了。

我不胡言乱语了,回去搞JEE去了。
46 楼 tangfeng 2009-11-16  
对于那些数据类型,用惯了就好了!MFC是比较老了,但是你可以用WTL嘛,你如果觉得WTL不爽,也可以自己搞个界面库嘛!想在Windows上做界面开发,Win32API,GDI,GDI+这些肯定是无法回避的!
45 楼 szwe 2009-11-16  
luolonghao 写道
szwe 写道
不是打击楼主,要是你纯粹为了界面好看,用qt/gtk还不如直接用.net算了。
C/C++从一开始就不是为画面服务的,linux也大部分GUI程序也都是用tcl/perl的,单就那漫长的编译时间和不支持xml序列化,用C/C++做画面的效率就已经被判处了死刑。

GNOME和KDE不是用C/C++写的?

那open gl和dx还是用C写的呢?你要不要从open gl写起?
不提倡用C/C++是为了不重复造轮子,如果说是画面不要求华丽,用C/C++效率的差距还不明显。
但是刻意追求画面的话,效率的差距就不是一点点了,一个布局的dock就够你头晕晕还写出来到处都是bug。
44 楼 egmkang 2009-11-16  
night_stalker 写道


Visual C++ 的弊病是对 C 语言的支持很差,不支持 C99 标准,十年过去了,连 VS 2010 都不支持 C99 ……


VC从来都没想过支持C99.
43 楼 night_stalker 2009-11-16  
mfc 的性能不如 wtl,不过,也比 qt 好 ……
42 楼 visualcatsharp 2009-11-16  
dch1287 写道
visualcatsharp 写道
dch1287 写道
看看这个 Qt斯密哒
#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a(argc, argv);

    QPushButton hello( "Hello world!", 0);
    hello.resize(100,30);

    //a.setCentralWidget(&hello);
    hello.show();
    return a.exec();
}


再看看这个
http://www.blogjava.net/lusm/archive/2009/05/31/175563.html
和这个
http://www.kuqin.com/cpluspluslib/20070912/1051.html

------------------------------------------------------------------------
引用
如果GTK可用,那QT和MFC不是一样么。

ps:MFC那种XX(XX任意想象)怎能和Qt相比


就凭你也够资格说mfc不及qt?

说MFC不行并不是我的观点(应该是人尽皆知的观点了),甚至是M$自己的设计,架构人员的观点,如果你看过一些.Net、Win Form类库设计方面的文章,看看.Net设计师自己怎么阐述MFC曾今的ugly设计以及他们是如何改进的等等

还有,人身攻击出现在这里,与我无害,与你无益。


你一句话就将mfc忽略了,你还敢说人家人身攻击你。
现在给人说了你一句,心里就发虚,立刻发表与自己无关的声明。
我看你这个人真够心虚的。
任何语言包括任何框架都有它的弊端。
你这么爱比较,那为什么不比较一下qt与mfc的性能。
41 楼 dch1287 2009-11-16  
visualcatsharp 写道
dch1287 写道
看看这个 Qt斯密哒
#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a(argc, argv);

    QPushButton hello( "Hello world!", 0);
    hello.resize(100,30);

    //a.setCentralWidget(&hello);
    hello.show();
    return a.exec();
}


再看看这个
http://www.blogjava.net/lusm/archive/2009/05/31/175563.html
和这个
http://www.kuqin.com/cpluspluslib/20070912/1051.html

------------------------------------------------------------------------
引用
如果GTK可用,那QT和MFC不是一样么。

ps:MFC那种XX(XX任意想象)怎能和Qt相比


就凭你也够资格说mfc不及qt?

说MFC不行并不是我的观点(应该是人尽皆知的观点了),甚至是M$自己的设计,架构人员的观点,如果你看过一些.Net、Win Form类库设计方面的文章,看看.Net设计师自己怎么阐述MFC曾今的ugly设计以及他们是如何改进的等等

还有,人身攻击出现在这里,与我无害,与你无益。
40 楼 七猫 2009-11-15  
seen 写道
牛x的程序员不写有UI的程序

牛X的程序员不但写“干净”的代码,他们也会写“脏”代码,也许这就是他们与普通程序员的区别。
39 楼 iaimstar 2009-11-15  
seen 写道
牛x的程序员不写有UI的程序

我来膜拜这句
38 楼 seen 2009-11-15  
牛x的程序员不写有UI的程序
37 楼 mikeandmore 2009-11-15  
linkobe 写道
一直在想chrome和ff这样的是用什么写的界面......

linux下都是gtk写的。。
36 楼 linkobe 2009-11-14  
一直在想chrome和ff这样的是用什么写的界面......
35 楼 幸存者 2009-11-14  
night_stalker 写道

Visual C++ 的弊病是对 C 语言的支持很差,不支持 C99 标准,十年过去了,连 VS 2010 都不支持 C99 ……

这也是我对VC最恼火的地方
C++倒是无所谓,反正我也不怎么喜欢用C++,C++0x都快熬成C++1x了。
34 楼 night_stalker 2009-11-14  
gnome 的默认组件很难看 …… 速度和美感都不如原生组件。
常用对话框的按键布局就能看出 …… 他们没有 UI 设计师,或者他们的 UI 设计师是菜鸟。

用 C API 写 windows 程序,可以看 << Programing Windows >> 和一些游戏编程的书,资料还是不少的,只是网上很少 ……

不需要 Visual Studio,只需要 Visual C++ 2008 Express 版本(虽然比 visual studio 少了 PGO,但是大部分编译出来的东西性能比 mingw32 的好)。

Visual C++ 的弊病是对 C 语言的支持很差,不支持 C99 标准,十年过去了,连 VS 2010 都不支持 C99 ……
(C89 只能在 block 顶部声明变量,而 C99 没这个限制,直接导致很多在 linux 下面能好好编译的 C 程序很难在 VC 里面编译)

另外 C++ 的 wchar_t 简直就是添乱! 不知道当初怎么设计的!
33 楼 silasoni 2009-11-14  
哈哈 我就用vc6
楼主审代码观好像跟我差不多
投奔linux c gtk
32 楼 visualcatsharp 2009-11-14  
dch1287 写道
看看这个 Qt斯密哒
#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a(argc, argv);

    QPushButton hello( "Hello world!", 0);
    hello.resize(100,30);

    //a.setCentralWidget(&hello);
    hello.show();
    return a.exec();
}


再看看这个
http://www.blogjava.net/lusm/archive/2009/05/31/175563.html
和这个
http://www.kuqin.com/cpluspluslib/20070912/1051.html

------------------------------------------------------------------------
引用
如果GTK可用,那QT和MFC不是一样么。

ps:MFC那种XX(XX任意想象)怎能和Qt相比


就凭你也够资格说mfc不及qt?

相关推荐

    oRTP-0.16.3 软件包下载 2010年7月发布。

    What is it ? ************ oRTP is a LGPL licensed C library implementing the RTP protocol (rfc3550)....There are instructions and Microsoft Visual C++ project files in build/win32native/oRTP.

    Visual C++ 2008 入门

    My objective with this book is to teach you the essentials of C++ programming using both of the tech- nologies supported by Visual C++ 2008. The book provides a detailed tutorial on both flavors of ...

    MapX 5.0开发手册

    **4.8 Getting Started with Visual C++** - **Visual C++入门:** 使用Visual C++进行MapX开发的基础教程。 - **开发流程:** 描述从新建项目到运行项目的整个流程。 **4.9 Getting Started With Delphi** - **...

    Visual C++做的连连看小程序,适合新手

    在本文中,我们将深入探讨如何使用Visual C++创建一个连连看小游戏,这是一款非常适合编程新手入门的项目。Visual C++是Microsoft开发的一款强大的集成开发环境(IDE),它提供了丰富的工具和库来支持C++编程,使得...

    仓库管理系统 visual c++6.0

    AppWizard has created this DMS application for you. This application not only demonstrates the...This file contains a summary of what you will find in each of the files that make up your DMS application.

    Visual C/C++的异常处理

    ### Visual C/C++ 的异常处理详解 #### 一、引言 在开发过程中,异常处理是一种重要的编程技术,用于管理程序执行过程中可能出现的各种错误或非预期情况。Visual C/C++ 提供了多种方式来处理异常,包括标准 C 语言...

    Visual C++课程设计案例精编(第二版) --第三章 系统进程管理器的开发

    // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_SHOWALLPROCESS_H__928B7E87_BDF8_4C4F_84D3_AF4D921C3CF8__INCLUDED_)

    Using LUA with Visual C++ (Introduction)

    Scripts give you the possibility to change the behaviour of your C++ programs without any need to recompile your program. A real world example would be game programming: you only have to change the ...

    Visual C++中的异常处理浅析

    《Visual C++中的异常处理深度解析》 Visual C++作为一款强大的开发工具,不仅支持标准的C++语言,还提供了对Microsoft Foundation Classes (MFC)的集成,这使得在异常处理方面,Visual C++有着独特的处理机制。...

    MAtlab与C,C#,VB接口电子书

    **5.4 Creating MEX-files in Visual C++** 演示如何使用Visual C++创建MEX文件。 **5.5 Example** 提供一个具体的例子来展示MEX文件的创建过程。 **5.6 Further reading** 进一步阅读材料推荐。 **5.7 About ...

    CImg Reference

    - **What are the specificities of the CeCILL license?** - The CeCILL license is a free software license compatible with the GNU GPL and designed specifically for French law. - **Who is behind CImg?**...

    C & C++ Win32 API Programming

    In this comprehensive guide on **C & C++ Win32 API Programming**, we delve into the essentials of developing Windows applications using the powerful Win32 API. The Win32 API is a set of programming ...

    Visual C++课程设计案例精编(第二版)--第六章 电子邮件发送和接受程序的开发

    // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_MAILSERVER_H__CB181B60_A7D0_4663_B1F4_A97F7F2B9BAB__INCLUDED_)

    SML VCL Package (Cracked)

    SMLPack is a suite of multilingual support components package for Delphi & C++Builder. It can help you to make your application support multilingual user interface. It is a real AUTOMATIC tool for ...

    [揭秘系列-C++]C.Demystified,.A.Self-Teaching.Guide.pdf

    - **Jeff Kent**:洛杉矶山谷学院计算机科学副教授,教授多种编程语言,包括Visual Basic、C++、Java等。他不仅是一位资深教师,还负责一家洛杉矶律师事务所的网络管理工作。 #### 学习资源特色 - **Hands-On ...

    迷宫游戏的c++源程序

    This file contains a summary of what you will find in each of the files that make up your maze application. maze.cpp This is the main application source file. maze.dsp This file (the project file)...

    C++ Without Fear 3rd 第3版 无水印pdf 0分

    Now updated for the newest C++14 standard and the free Microsoft Visual C++ Community Edition, it will quickly make you productive with C++ even if you’ve never written a line of code! Brian ...

Global site tag (gtag.js) - Google Analytics