none
学习VC有段时间了,但总是感觉理解的不透彻,没有融会贯通的感觉,其中最要命的就是VC那一堆奇怪的数据类型,什么MFC的、ATL的、COM的、ASNI、宽字符、UTF8的 。。。 RRS feed

  • 问题

  • 崩溃了 。。。不容易理解他们之间的关系、互相转换的问题  ,崩溃,崩溃 。。。。

            如何才能更好掌握这些 ? 只能靠不断的在编程累积 ?
    2010年3月7日 14:43

答案

  • 由浅入深,不要想一口吃个胖子。也不可能有28天精通C++的事情。我以前贴过一个学习路线。建议最好从ISO C++开始学习。然后是MFC->COM->ATL在这之间你就会知道ANSI, UTF8是什么了。
    麻烦把正确答案设为解答。
    • 已标记为答案 王的强 2010年3月9日 14:47
    2010年3月8日 1:53
    版主
  • 我也是初学C/C++.这本书是国人写的,感觉看了这个明白了不少.

    把脉VC++

    http://book.douban.com/subject/3779585/

    虽然不是什么经典书,但里面很多内容是针对你说的那些迷惑.



    欢迎多交流http://solo.cnblogs.com
    • 已标记为答案 王的强 2010年3月9日 14:48
    2010年3月8日 3:26
  • 哦,这样啊。
    你就都用char然后通过string.h里面的标准C函数来操作最好,在需要转换的时候可以通过一个Win32的万能unicode<->ansi API wsprintfW和wsprintfA来转换。Win32开发一般不用UTF8的,实在需要,调用专门的API来转换(MSDN上有,搜索UTF8即可),只把这一种搞懂了再加上转换方式就哪都没问题了。

    CString虽好可惜只能在MFC下使用。不然需要包含一堆MFC的头文件,我记得有一个非MFC环境调用MFC的头文件好像是atlstd.h(可以在MSDN的MFC栏目下查到,记不得了)

    其他的方式无所谓了,了解一下就行,反正也是大同小异。

    0xBAADF00D
    • 已标记为答案 王的强 2010年3月9日 14:48
    2010年3月8日 15:01
    版主

全部回复

  • 由浅入深,不要想一口吃个胖子。也不可能有28天精通C++的事情。我以前贴过一个学习路线。建议最好从ISO C++开始学习。然后是MFC->COM->ATL在这之间你就会知道ANSI, UTF8是什么了。
    麻烦把正确答案设为解答。
    • 已标记为答案 王的强 2010年3月9日 14:47
    2010年3月8日 1:53
    版主
  • 我也是初学C/C++.这本书是国人写的,感觉看了这个明白了不少.

    把脉VC++

    http://book.douban.com/subject/3779585/

    虽然不是什么经典书,但里面很多内容是针对你说的那些迷惑.



    欢迎多交流http://solo.cnblogs.com
    • 已标记为答案 王的强 2010年3月9日 14:48
    2010年3月8日 3:26
  • 你先搞懂这些缩写是干什么的,再去搞懂他们的关系.

    MFC是微软封装的开发库,ATL是微软的模板库,COM是微软的通用接口标准.

    ASNI、Unicode、UTF8这些则是文字的编码方式,和VC没什么关系,在所有的操作系统里面都有这几种编码方式.

    建议你先搜索一下这些缩写的基本概念,再去试着用他们做些程序,自然就懂了.必须要动手用,才能知道他们有什么用.

    0xBAADF00D
    2010年3月8日 6:31
    版主
  • 你先搞懂这些缩写是干什么的,再去搞懂他们的关系.

    MFC是微软封装的开发库,ATL是微软的模板库,COM是微软的通用接口标准.

    ASNI、Unicode、UTF8这些则是文字的编码方式,和VC没什么关系,在所有的操作系统里面都有这几种编码方式.

    建议你先搜索一下这些缩写的基本概念,再去试着用他们做些程序,自然就懂了.必须要动手用,才能知道他们有什么用.

    0xBAADF00D

    老大。我说的不是这个意思 。。我说的是他们的数据类型。我想问,如何才能快速掌握他们的数据类型这个问题 , 我只是不明白,他们为啥要有这么多的数据类型  。。 比如,光是字符串,就有好几种,每个你说的“缩写”,似乎都有自己的字符类型 。。。 对初学者来说,这个怎么处理 ? 每样都学会 ? 还是,光学会1种,然后学会怎么转换就行了 ?

          比如:我要写一个类,我喜欢MFC的 CString , 所以,我决定,把全部的字符串字段,都使用这个,然后当调用API的时候,再转换成API需要的类型 。。。 这样的方式,是否可取 ?

        不可取的话,应该怎么弄 ? 

        在每个调用 API 的 函数中,重新定义适合API的数据类型,然后给其赋值 ? 必须用这样的方式,才算精确吗 ?

     
    2010年3月8日 9:17
  • 哦,这样啊。
    你就都用char然后通过string.h里面的标准C函数来操作最好,在需要转换的时候可以通过一个Win32的万能unicode<->ansi API wsprintfW和wsprintfA来转换。Win32开发一般不用UTF8的,实在需要,调用专门的API来转换(MSDN上有,搜索UTF8即可),只把这一种搞懂了再加上转换方式就哪都没问题了。

    CString虽好可惜只能在MFC下使用。不然需要包含一堆MFC的头文件,我记得有一个非MFC环境调用MFC的头文件好像是atlstd.h(可以在MSDN的MFC栏目下查到,记不得了)

    其他的方式无所谓了,了解一下就行,反正也是大同小异。

    0xBAADF00D
    • 已标记为答案 王的强 2010年3月9日 14:48
    2010年3月8日 15:01
    版主