我看过《COM原理及应用》,没看完,后面也没怎样看明白,就没看了,现在使用ATL编写COM,也不是太难。

解决方案 »

  1.   

    现在还是一头雾水。
    就像没有项目经验的人在看《设计模式》的感觉是一样的。
    理解了COM,那么你用ATL会更加顺手的,ATL中有些技法在COM本质论里被刨出根出来了。
    多读几遍,会有不一样的收获的。我现在重读第二遍,以前不理解的地方又有新的收获了。
      

  2.   

    记得有一本叫《com/dcom编程指南的》我感觉还可以。看了三便后有点入门
      

  3.   

    恰好兄弟我刚找到一本不错的书,“Visual C++实践与提高__COM和COM+篇”。感觉很不错,从标准C++编程方式很自然地过渡到COM,而且深入内幕,COM API、MFC、ATL都有较深入的讲解,体系也不错,可以自由跳过一些章节(有提示),是中国铁道出版社出的。
      

  4.   

    我的建议是先看《深度探索C++对象模型》(如果你对C++了解得很透可以略过,不过你要是真的认为你是C++高手也许看了这本书你就不这么想了)。然后看《COM本质论》的前两章。接着看《COM技术内幕》(Inside COM)然后会来看COM本质论的其余部分。最后可以学学ATL,可以看看《深度解析ATL》潘爱民译!
    当然了,很对地方可以交叉进行。还有这不全是我的建议!~!~是侯捷先生说的,虽然有推荐自己翻译作品的嫌疑,但还是有道理的况且,这几本书都是经典之作。(好书无价,别吝惜Money)
      

  5.   

    我以前就是看了《com/dcom编程指南的》这本书,书不是很好,而且我自认自己的智力也不是很好,所以看了好几遍才看明白,我觉得要学好COM不能光借用工具,什么MFC ATL BasCtrl先都别用,纯粹自己写,类厂、注册函数什么都自己写,这样肯定能理解的深,好了以上是我的一些看法,请方家指正。
      

  6.   

    我也是看的一头雾水,com这个东西的学习周期比较长吧
      

  7.   

    《COM技术内幕》很简单的,看起来比较容易,但是我不知道《深度探索C++对象模型》的哪些内容对理解COM有帮助,如果只是多重继承的vtable内存结构的话,那么只看前者基本上就够了,不知道哪位比较了解后者对学习COM上的帮助
      

  8.   

    《COM技术内幕》很简单的,看起来比较容易,但是我不知道《深度探索C++对象模型》的哪些内容对理解COM有帮助,如果只是多重继承的vtable内存结构的话,那么只看前者基本上就够了,不知道哪位比较了解后者对学习COM上的帮助
      

  9.   

    我看了《com/dcom编程指南》,感觉不怎么样,看来得选本经典得看看。
    先从《COM原理及应用》着手。
    另外我觉得com这东西需要使用才能入门,否则看得时候有些明白但很费劲,过了两天就全忘了。
      

  10.   

    我只能找到《com/dcom编程指南》,和另外一本叫《com和com+的入门与提高》的书看,脑袋都看大了。
      

  11.   

    Don't forget COM/DCOM specification, which is better than most books.
      

  12.   

    我觉得需要多动手,书要多读几遍,第一次不理解没有关系,等到水到渠成自然会理解。不过好难等哦
    我觉得先看INSIDE COM比先看COM本质论要好
      

  13.   

    我正在学用ATL写控件,感觉如果用VC的话,还不如封装成一个类。除非用别的开发工具,否则真是得不偿失!
      

  14.   

    TMD,我被一个 nmake 给卡壳了。
      

  15.   

    看ATL开发指南(2th)6天,现云里雾里。但这个星期就要拿出东东,钱不好赚啊。
      

  16.   

    拿一本书,最好是有水平的书,我是拿《COM原理与应用》,看不明白,没关系,就是往下看,从头看一遍,理解多少是多少,不要叫劲,主要目的是要对你所要学的东东有个模糊的概念,这样就可以了,刚开始不要奢求太多,然后就开始做,不明白再看书,再做,再看书,不知不觉你就会了,当然这是很枯燥的,但坚持下去,你就会有很大收获。此方法是我一直采用的方法,不单单是COM,我学其他的东东,也是采用的这个方法,自觉得还是不错,说出来让大家参考。
      

  17.   

    现在正在做《COM原理及应用》,他的第二章DictComp的DeleteWord方法算法有错
    void CDictionary::DeleteWord(String word)
    {
    char *pWord = _com_util::ConvertBSTRToString(word);
    char *pUpperWord = strupr(pWord);
    for (int i = 0; i < m_nWordNumber; i++)
    {
    char *tmpWord = strupr(m_Data[i].wordForLang1);
    if (strcmp(tmpWord, pWord) == 0) {
    for(int j = i + 1; j < m_nWordNumber; j++) {
    strcpy( m_Data[j].wordForLang1, m_Data[j + 1].wordForLang1);
    strcpy( m_Data[j].wordForLang2, m_Data[j + 1].wordForLang2);
    }
    m_nWordNumber ++ ;
    break;
    }
    }
    delete pWord;
    }
    应为:
    void CDictionary::DeleteWord(String word)
    {
    char *pWord = _com_util::ConvertBSTRToString(word);
    char *pUpperWord = strupr(pWord);
    for (int i = 0; i < m_nWordNumber; i++)
    {
    char *tmpWord = strupr(m_Data[i].wordForLang1);
    if (strcmp(tmpWord, pWord) == 0) {
    for(int j = i + 1; j < m_nWordNumber; j++) {
    strcpy( m_Data[j-1].wordForLang1, m_Data[j + 1].wordForLang1);
    strcpy( m_Data[j-1].wordForLang2, m_Data[j + 1].wordForLang2);
    }
    m_nWordNumber -- ;
    break;
    }
    }
    delete pWord;
    }不知我是否正确,请指正
      

  18.   

    我读过《com/dcom编程指南》,正在看《COM原理和应用》,感觉前者没有后者深入,后者也更容易理解一些。
    我觉得仅仅是编写一些COM组件,用Wizard好像不难,但是要深入一点,比方结构化储存的原理,仅仅知道一些皮毛是不够的
      

  19.   

    学习COM只是一种技术,最重要的是大家得学习方法,我是帖子的开辟者,我希望大家把自己好的方法共享出来,让我们象在一个大家庭一样讨论学习,在此得很多大吓,走过很长的路才发展成今天的样子,希望把你的经验贡献出来,让后来者更容易学习,少走弯路
      

  20.   

    com两个月,感觉可以用ATL做东西了。
    主要书籍:康亩本质论。康木原理与应用。
    不求甚解,边做边学
      

  21.   

    看了《COM的原理与应用》,我还是只能用模板写ATL,真不知道哪天才能自己动手弄个COM出来……
      

  22.   

    《INSIDE COM》确切比《COM本质论》容易入门多了。
      

  23.   

    我看了一本叫《COM/DCOM技术内幕》的书,看了比没看还糊涂。
      

  24.   

    问个问题啊!怎么把CString直接转化成OLECHAR*?我现在用的方法、、、、我觉得很笨
      

  25.   

    _com_util::ConvertStringToBSTR(s.GetBuffer(s.GetLength()))
    不知道可不可以,^_^ 刚学COM
    能有更多的声音吗?
      

  26.   

    《INSIDE COM》确切比《COM本质论》容易入门多了。 是呀,我看了《INSIDE COM》两遍,再看《COM本质论》,哇,进度神速
      

  27.   

    我是初学者,现在正在看潘爱民的那本com的原理和应用;感觉第一部分还能理解
    第二部分就无法看夏去了;原理太难了,不知道是不是边学边用的效果是不是会好
    一些!