请查看MSDN里关于LNK2005的帮助(在索引里键入lnk2005),发里面列有四种出现此错误的可能性,看过之后你一定能搞定。

解决方案 »

  1.   

    放在stdafx.h中很危险的.
    如果你在多个文件中定义__DIBAPI_H_就会引起重定义错误.一般的解决方法是在一个CPP文件中定义,当在其他文件中使用前,用extern关键字声明一下即可使用.比如:
    在stdafx.cpp中定义
    int iCount=1;
    在另一个文件中使用前使用
    extern int iCount;
    之后
    下面就可以正常使用了.一般定义你提到的这种宏都在类的头文件中,把整个头文件包在其中,目的是防止重复include.
      

  2.   

    高手毕竟是高手,joke100老兄的做法很正规,而且不会出现错误,每次用的时候,只要在要使用文件的文件前extern声明一下就OK了
      

  3.   

    earching for 'iCount'...
    C:\Documents and Settings\chuyf\My Documents\ld\KineticsProccess\KineticsProccessDoc.cpp(94): for(i=0;i<50*iCount;i++)
    C:\Documents and Settings\chuyf\My Documents\ld\KineticsProccess\StdAfx.h(8):int iCount=1;
    2 occurrence(s) have been found.可以看到在别的地方我只是用了这个变量,并没有定义呀
    为什么报重复定义呢
    ?
      

  4.   

    但是为什么Mti没有重复定义呢?真是奇怪阿
      

  5.   

    而且,你看没有,重复定义指向的Obj不同,也许有什么玄机阿!
      

  6.   

    不如把源程序发到[email protected],我帮你看看,(旁观者清,当局者迷阿)
      

  7.   

    要重复使用其他cpp中定义的常量怎么办呢?