几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】problem about afx.h (http://www.dimcax.com/hust/showthread.php?t=17987)

yang686526 2009-05-06 10:31 PM

【转帖】problem about afx.h
 
problem about <afx.h>
problem about <afx.h>
windowsxp +vc6.0
i want to use cfile in sample project odreadex, so i add "#include <afx.h>" and "cfile cf;" to file odreadex.cpp.
the results are as follows.
--------------------configuration: odreadex - win32 debug--------------------
compiling...
odreadex.cpp
compiling password support for r18 drawings
linking...
nafxcwd.lib(afxmem.obj) : error lnk2005: "void * __cdecl operator new(unsigned int)" (??2@yapaxi@z) already defined in dd_vc6md_alloc.lib(odallocop.obj)
nafxcwd.lib(afxmem.obj) : error lnk2005: "void __cdecl operator delete(void *)" (??3@yaxpax@z) already defined in dd_vc6md_alloc.lib(odallocop.obj)
nafxcwd.lib(afxmem.obj) : error lnk2005: "void * __cdecl operator new(unsigned int,int,char const *,int)" (??2@yapaxihpbdh@z) already defined in dd_vc6md_alloc.lib(odallocop.obj)
link : warning lnk4098: defaultlib "msvcrt" conflicts with use of other libs; use /nodefaultlib:library
nafxcwd.lib(timecore.obj) : error lnk2001: unresolved external symbol __mbctype
nafxcwd.lib(apphelp.obj) : error lnk2001: unresolved external symbol __mbctype
nafxcwd.lib(filelist.obj) : error lnk2001: unresolved external symbol __mbctype
nafxcwd.lib(appcore.obj) : error lnk2001: unresolved external symbol ___argv
nafxcwd.lib(appcore.obj) : error lnk2001: unresolved external symbol ___argc
../../../../../exe/debug/odreadex.exe : fatal error lnk1120: 3 unresolved externals
error executing link.exe.
odreadex.exe - 9 error(s), 1 warning(s)
why?
please give me a hand. thank you very much.
afx.h is going to define new and delete. so you would remove the "dd_vcxxx_alloc.lib", and then potentially define stubs for them such as:
code:
allocdll_export void odrxfree(void* p)
{
::free(p);
}
allocdll_export void* odrxrealloc(void* p, size_t new_size, size_t /*old_size*/)
{
return ::realloc(p, new_size);
}
allocdll_export void* odrxalloc(size_t s)
{
return ::malloc(s);
}it looks like you may have some issues w/ the multi byte character sets as well, but i can't tell for sure.
ultimatly, it's going to boil down to using the right lib's with the right project settings.


所有的时间均为北京时间。 现在的时间是 10:28 AM.