Антон (LogRus)
|
|
« Ответ #210 : 10-09-2010 07:31 » |
|
CString принимает аргументы через ... соответственно тип аргументов он выводит из описания формата, в данном случае из "%s" соответственно делается преобразование std::string * -> void* -> char * string в первом байте может запросто хранить 0, это служебные данные
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #211 : 10-09-2010 07:40 » |
|
Антон (LogRus), никто ж не спорит, весь косяк в том, что предупреждения от компилятора нету ))
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #212 : 10-09-2010 07:43 » |
|
Алексей1153++, и не будет, компилятор не обязан парсить строку "%s" и понимать, что разработчик налажал в этой строке, тут нужно понимать, что передавая данные через ... ты добровольно расстаёшься с инфой о типе и компайлер умывает руки я его понимаю
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #213 : 10-09-2010 08:03 » |
|
Просто я после долгого общения с const char* и CString не обратил внимания на эту капризную особенность std::string )
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #214 : 10-09-2010 08:14 » |
|
Это не капризная особенность std::string это грязный хак в CString , который заточен именно под это
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #215 : 10-09-2010 08:22 » |
|
та CString никуда не заточен, он всего лишь набор функций для объекта (const char*) . Простой, как валенок
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #216 : 10-09-2010 08:27 » |
|
Алексей1153++, ты еще скажи он длину не хранит
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #217 : 10-09-2010 08:36 » |
|
неть, замечен в подобном не был )) что может быть красноречивее
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #218 : 10-09-2010 08:37 » |
|
Какая гадость, то-то у меня отторжение к этому классу
|
|
|
Записан
|
Странно всё это....
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #219 : 10-09-2010 08:37 » |
|
Если вы говорите про CString ранних версий, то да. Но в последних версиях он уже совсем другое.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #220 : 10-09-2010 08:39 » |
|
у меня они вот так определены в исходниках typedef ATL::CStringT< wchar_t, StrTraitMFC< wchar_t > > CStringW; typedef ATL::CStringT< char, StrTraitMFC< char > > CStringA; typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #221 : 10-09-2010 08:43 » |
|
всю жизни стараюсь избегать всего кроме std::string - в стандарте только эти строки
|
|
|
Записан
|
Странно всё это....
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #222 : 10-09-2010 08:52 » |
|
К сожалению не все MFC объекты знают про это, и ждут CString.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Антон (LogRus)
|
|
« Ответ #223 : 10-09-2010 08:53 » |
|
Скинь оковы MFC вступай в ряды чистого C++
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #224 : 10-09-2010 09:03 » |
|
std::string не всегда удобен. В отличие от CString
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #225 : 10-09-2010 09:06 » |
|
Антон, авантюрист.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #226 : 10-09-2010 16:00 » |
|
обнаружил приятную особенность консоли - можно перетащить файл, тогда сразу полный путь, да ещё сразу и в кавычках вставится ) Гораздо удобнее, чем через буфер или вручную
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #227 : 11-09-2010 18:12 » |
|
Алексей1153++, настоящие_программисты_не_пользуются_пробелом) в смысле, мышкой - оно ж долго тащить то?! да и промазать можно...пролетая над корзиной)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #228 : 12-09-2010 06:39 » |
|
Алексей1153++, а если в пути нет пробелов, то без кавычек
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #229 : 12-09-2010 07:37 » |
|
1) Алексей1153++, настоящие_программисты_не_пользуются_пробелом)
2) в смысле, мышкой - оно ж долго тащить то?!
3) да и промазать можно...пролетая над корзиной)
все три утверждения/вопроса - непонятны Особенно , если присмотреться к названию папки "Program Files". А про мышку и корзину - это уж я прям не знаю, как надо выпить ))) Dimka, дык, он автоматом вставляет кавычки, если их нужно. Если не нужно - то и не надо кавычек
|
|
« Последнее редактирование: 12-09-2010 07:39 от Алексей1153++ »
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #230 : 12-09-2010 12:48 » |
|
Ну впринципе пробелы можно экранизировать. Что bash и делает в таком случае Только в виндовс это будет коряво конечно выглядеть. Лучше уж кавычки.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #231 : 12-09-2010 13:13 » |
|
Finch, в смысле "экранизировать" ? Если имел в виду экранировать - то вряд ли это возвожно в виндовой консоли, или покажи, как )
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #232 : 12-09-2010 13:27 » |
|
Сейчас например я эксперементировал mplayer /media/film/Comedy/Who\ Am\ I\ \[RG\ CVC\].mp4
Правда это получилось не при копировании, а при автозаполнении. При копировании он честно берет в одинарные скобки. Это не виндовая консоль Там скорее всего придется стругать кучу обратных слешей. Так как они будут конфликтовать.
|
|
« Последнее редактирование: 12-09-2010 13:29 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Антон (LogRus)
|
|
« Ответ #233 : 13-09-2010 07:02 » |
|
Виндовая консоль вроде тоже нормально заполняет
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #234 : 07-02-2012 06:23 » |
|
опять таки наступил на грабли с пропущенным #pragma pack(pop) по запарке написал так #pragma pop() что компилятор проглотил и не подавился. Так вот, вдруг нашёл преотличный способ нахождения непарных прагм (при условии, что они всегда таким образом отформатированы - "#pragma_пробел_pack") делаем поиск по проекту строки "#pragma pack" и смотрим в логе, где будет непарная прагма: И это всегда должно сработать.
|
|
|
Записан
|
|
|
|
|