高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】2.2, w-char and vc8
2.2, w_char and vc8
2.2, w_char and vc8
i was under the impression that the 2.2 version was supposed to fix the problem with vc8 and using wchar_t as default. we're still running into lots of trouble, even after fixing the headers manually. any projection on when a version will be available that fixes this?
thx!
what problems have you encountered (that could not be fixed on your side)?
what headers have you fixed? (one i already know of - it is odcharconverter.h)
vladimir
i have wchar_t set as default as well but my problem (shown below) may or may not be the cause of having this setting.
fyi: unicode is defined
code snippet:
oddbblocktablerecordptr pblock = pblkiter->getrecordid().safeopenobject();
cstring sblockname(pblock->getname().c_str());
i was hoping for an odcharw * to be returned but the error below is saying odchar *.
error c2664: 'atl::cstringt<basetype,stringtraits>::cstringt(at l::iatlstringmgr *) throw()' : cannot convert parameter 1 from 'const odchar *' to 'atl::iatlstringmgr *'
with
[
basetype=wchar_t,
stringtraits=strtraitmfc_dll<wchar_t>
]
types pointed to are unrelated; conversion requires reinterpret_cast, c-style cast or function-style cast
any ideas or solutions would be greatly appreciated. tia.
did you try:
code:
sblockname.format("%s", pblock->getname());
(ddirect.cpp, line 172)
life would be so much easier if we could just look at the source codefff">fff">
in such constructions
quote:
originally posted by brandtj
cstring sblockname(pblock->getname().c_str());
it is better to use wchar_t* cast operator. like this
cstring sblockname((lpctstr)pblock->getname());
using tchar also allows to support both ansi and unicode versions.
vladimir
|