一个控制台程序,程序很简单就是取得用户的一些输入,在连接时报错。
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 libcpmt.lib(newop.obj) 中定义
请问如何解决

解决方案 »

  1.   

    编译器找到两个new操作符的实现。
    是不是头文件重复包含了?
    另外,头文件中只加函数的声明,实现写入CPP中,不然,多处包含的话,就会产生多个实现。
      

  2.   

    头文件中只加函数的声明,实现写入CPP中,我都是这样做的呀
    nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 libcpmt.lib(newop.obj) 中定义
    nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmt.lib(newaop.obj) 中定义
      

  3.   

    那你检查FILE视图,确认每个源文件只在项目里存在一个.
      

  4.   

    我是控制台程序,发现还是有问题,debug版本没问题,release版只要是选择静态连接mfc就会出问题
      

  5.   

    终于发现问题了,是由于using namespace std 的原因。但是不申明我的cin,cout等又出错,怎么解决呢请指点
      

  6.   

    http://support.microsoft.com/search/default.aspx?InCC_hdn=True&Product=&KeywordType=ALL&Titles=false&numDays=&maxResults=25&Queryl=lnk2005&Query=lnk2005&Catalog=LCID%3D2052%26CDID%3DZH-CN-SUPPORT%26PRODLISTSRC%3DOFF&QuerySource=gsfxSearchRt_Query&srchExtraQry=Visual+C%2B%2B+.NET