我在已有的project里面又加了一个cpp文件,编译。。告之有如下错误
Linking...
nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in Dll_Main.obj
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
nafxcw.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in Dll_Main.obj; second definition ignored
nafxcw.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj); second definition ignored
   Creating library Release/ir_function.lib and object Release/ir_function.exp
Release/ir_function.dll : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.ir_function.dll - 3 error(s), 9 warning(s)高手可以指导一下么?

解决方案 »

  1.   

    你新加的cpp是不是也有DllMain函数呢?
      

  2.   

    没有啊,我的只有
    EXPORT char* SQL(char *ConDb,char *ConName,char *ConPass,char *SqlExe)
    和一个 char* ShowSQLInfo( SQLHANDLE hnd, SQLSMALLINT htType)有几个include
    #include <afxdb.h>
    #include <stdio.h>
    #include "ir_function.h"
      

  3.   

    就是因为rebuild all 出现了这个问题,在linking的时候出现的
      

  4.   

    选择使用Multithread dll 重新编译。 在project/setting/C/C++/CodeGeneration项.
      

  5.   

    好像是由于
    #include <afxdb.h>这一条语句的关系但是我在ir_function.h里面并没有include任何头文件啊
      

  6.   

    我有一个dllmain.cpp的主程序,里面就只有一个dllmain.cpp,#include <windows.h>其他的.cpp都是单独的子程序,这个cpp里面是调用数据库的,#include <afxdb.h>而其他的.cpp就都没有冲突。
      

  7.   

    Multithread dll 重新编译。 在project/setting/C/C++/CodeGeneration项用过了,不行啊:(