查看单个帖子
旧 2009-05-06, 10:31 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】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.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)