Отговори на тема  [ 8 мнения ] 
VisualStudio.net2005 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение VisualStudio.net2005
В Visual C++.
Имам следния проблем. Навсякъде където ползвам стрингов литерал трябва да правя явно преобразуване не типа.
тоест трябва да пиша така (CString)"Test". Рових,рових но не намерих откъде се оправя това?
Някой да знае нещо по въпроса? В Net2003 не беше така и директно си пишех "Теsт" и го присвоявах на променлива от CString.


Сря Дек 28, 2005 4:49 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Чет Ное 10, 2005 9:26 pm
Мнения: 393
Местоположение: Buffalo, NY, USA
Мнение 
Можеш да пробваш и това:
Код:
CString strTmp;

strTmp.Format( "%s", "Test" );

Малко повече писане е, ама може да ти помогне :-).

_________________
http://blog.georgievi.com


Сря Дек 28, 2005 5:20 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
И моя начин си работи. Въпроса е да се направи да си работи както се полага. Как в предишното работеше нормално и без такива акробатики.
Предполагам че е някаква опция.


Сря Дек 28, 2005 5:45 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Фев 04, 2005 3:18 pm
Мнения: 309
Местоположение: Sofia
Мнение 
Никола направо ти се чудя как изобщо се оправяш с вижъл студиото,
аз програмирам на борландското ++ от години и го гледам туй студио като теле :(

При BCB-то има клас AnsiStrintg който няма такива метаморфози във времето.
Както и да е ... майкрософт си измислиха собствено C++ и си правят каквото поискат (пък и често) Ей сега се отклоних ... не мога да се сдържа ...
Опитват се да го слеят в едно с глупоста наречена C#

Идеята на С-то е тотално опорочена -> ни скорост ни мултиплатформеност.

Супер забележително в микрософткото С:
набиваш точка на променлива от тип int и откриваш ,че това не е променлива от тип int а клас int тоест всичко е клас ,нещо присъщо на Java-та
Както е тръгнало ще стане като при 8-битовите ,който иска да пише игра
трябва да знае асемблер [-o<


Сря Дек 28, 2005 5:49 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Намери в кой хедър е дефиниран класа CString и виж приликите/разликите от Net2003 и Net2005. Не може да няма разлики и не е опция според мен. Просто в Net2005 явно са пропуснали някой конструктор. Ако няма такъв си направи собствен и си го включи в хедъра на класа CString. Примерно:
Код:
class CString : public Нещо си {
public:
  CString(char *str) {
  /*
   Твой код
  */
  }
};


AnsiString не е оригиналния клас за стрингове при Borland C++. Оригиналния клас за низове при Borland e класа cstring, който няма почти никаква поддръжка в CBuilder и програмистите се принудени да използват AnsiString. AnsiString e измишльотина, за да може да се получи CBuilder, което е полу-паскал-полу-C++ животно. Лошото е че CBuider 7 нема да има - сливат го с Delphi. Така че при Borland също има несъвместимост на стари сорсове с нови версии на компилаторите. Например мъчех се една седмица да компилирам добре работещ ми сорс с OWL & Borland C++ 5.02 на CBuilder 5, така и не можа да стане. Трябвало и библиотеките OWL да прекомпилирам. Почнах да ги прекомпилирам, CBuilder ми плюеше десетки грешки, независимо какви опции му давах. Накрая разбрах, че нема начин да я компилирам програмата с CBuilder 5. Пробвах с по-стари версии - CBuilder 4, CBuilder 3 и CBuilder 1, успеха беше същия както при CBuilder 5. A 4 г. съм правил джамове с OWL 2.0, оказа се че трябва всичко да изхвърля и да започна от нулата. В това отношение MicroSoft e много по-добре от Borland, стари сорсове на MFC без проблем ги прекарвам през новите компилатори ( е, без проблем не е точно, сменя някой и друг ред и проработва ).

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Дек 28, 2005 6:10 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Abe az oще в началото пробвах да го проследя тоз CString отде идва ама идва от ей това.

typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString; Което така и не успях да дешифрирам :)

Явно ще си карам с акробатиката :)


Сря Дек 28, 2005 6:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;
Според мен тук се декларира, че навсякъде където компилатора срещне класа CString да го взема като ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > >
TCHAR e макрос, който се използва за преносимост и ако компилираш програмата като UNICODE TCHAR става от тип wchar_t, иначе си е обикновен char.
Никола, защо не пробваш да зададеш с макрос или опция в Net2005 как да се третират char, като 1 байт или като 2 байта ( UNICODE ) ? Или изпробвай например следното:
Цитат:
TCHAR *pStr="Тест на TCHAR";
CString string(*pStr);

дали не дава различни резултати при компилация от например:
Цитат:
char *pStr="Тест на char";
CString string(*pStr);
[/quote]

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Дек 28, 2005 7:59 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Мерси Pirev.
Насочи ме в правилната посока. Точно в това че char e po default 2баита му беше проблема.

Необходимата опция е
Project Properties -> Configuration Properties ->General -> Character Set

по default e Unicode
Слагаш си го на Non Set и всичко си идва на мястото. :)


Сря Дек 28, 2005 8:42 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 8 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни