按照一本书上做的,它说时正则DLL(不知道英文是什么)。
ModArtDll0是DLL的名字。
Linking...
mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in ModArtDll0.obj
mfcs42d.lib(dllmodul.obj) : error LNK2005: __pRawDllMain already defined in ModArtDll0.obj
mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in ModArtDll0.obj; second definition ignored
mfcs42d.lib(dllmodul.obj) : warning LNK4006: __pRawDllMain already defined in ModArtDll0.obj; second definition ignored
Creating library Debug/ModArtDll0.lib and object Debug/ModArtDll0.exp
Debug/ModArtDll0.dll : fatal error LNK1169: one or more multiply defined symbols found
“already defined in ModArtDll0.obj”是什么意思?
里面类的首标文件里还用#defin之类的语句吗,和上面的错误有关系吗?
多谢了!
ModArtDll0是DLL的名字。
Linking...
mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in ModArtDll0.obj
mfcs42d.lib(dllmodul.obj) : error LNK2005: __pRawDllMain already defined in ModArtDll0.obj
mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in ModArtDll0.obj; second definition ignored
mfcs42d.lib(dllmodul.obj) : warning LNK4006: __pRawDllMain already defined in ModArtDll0.obj; second definition ignored
Creating library Debug/ModArtDll0.lib and object Debug/ModArtDll0.exp
Debug/ModArtDll0.dll : fatal error LNK1169: one or more multiply defined symbols found
“already defined in ModArtDll0.obj”是什么意思?
里面类的首标文件里还用#defin之类的语句吗,和上面的错误有关系吗?
多谢了!
在b.cpp里面出现过那么就会出foo already defined in ***.obj的错误如果一个函数
比方说
int foo (void)
{
return 0;
};在a.cpp里面出现过
在b.cpp里面也出现过
那么也会出这种错在*.cpp里面出现过还有可能是因为在a.h出现了 int foo = 0;
而a.cpp include了a.h
b.cpp也 include了b.h
打错了,不是dll,是函数
另外定义全局变量的时候最好在.cpp中定义,在.h中用extern声明!
extern "C" void PASCAL EXPORT ModArtNewDrawing(CRect pRect,CObArray *poaLines);
extern "C" void PASCAL EXPORT ModArtSerialize(CArchive &ar,CObArray *poaLines);
extern "C" void PASCAL EXPORT ModArtDraw(CDC* pDC,CObArray *poaLines);
extern "C" void PASCAL EXPORT ModArtClearDrawing(CObArray *poaLines);
void NewLine(CRect pRect,CObArray *poaLines);
函数的定义都在cpp中。
谢谢各位了,可我没找到重复的函数。请大家帮忙了