Russian Qt Forum
Ноябрь 23, 2024, 07:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с LPCTSTR  (Прочитано 5144 раз)
MHard
Гость
« : Февраль 17, 2009, 22:20 »

Здравствуйте. кто знает помогите плс.

Код
C
void funk1(LPCTSTR par1)
{
   if (par1=="slovo")
   {
      // этот условник не срабатывает ... почему ? как правильно реализовать?
 
   }
}
 
void main ()
{
  funk1("slovo");
}

помогите пожалуйста компиляция проходит нормально а сравнения типа LPCTSTR со стокой дает отрицательный результат
« Последнее редактирование: Февраль 17, 2009, 22:43 от pastor » Записан
BRE
Гость
« Ответ #1 : Февраль 17, 2009, 22:26 »

Так ты сравниваешь указатели. Для сравнения строк есть целое семейство функций: strcmp, strncmp, trcasecmp, strncasecmp.
Код:
const char *str1 = "String 1";
const char *str2 = "String 2";
int res = strcmp( str1, str2 );
res == 0 - если строки равны;
res < 0 - строка str1 меньше str2;
res > 0 - строка str1 больше str2.
« Последнее редактирование: Февраль 17, 2009, 22:28 от BRE » Записан
BRE
Гость
« Ответ #2 : Февраль 17, 2009, 22:30 »

Твой случай:
Код
C++ (Qt)
void funk1(LPCTSTR par1)
{
   if ( !strcmp( par1, "slovo" ) )
   {
      // этот условник не срабатывает ... почему ? как правильно реализовать?
 
   }
}
 
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #3 : Февраль 17, 2009, 22:30 »

LPCTSTR используется для строк Unicode. Поэтому надо писать
Код
C++ (Qt)
if (wcscmp(par1, L"slovo"))
{
}
 
Записан
MHard
Гость
« Ответ #4 : Февраль 17, 2009, 22:32 »

Код
C++ (Qt)
void funk1(LPCTSTR par1)
{
   const char* t="slovo";
    if (strcmp(par1,t)==0)
   {
      // ЗАработало...
 
   }
}
 
void main ()
{
  funk1("slovo");
}
 

Заработало огромное спасибо
« Последнее редактирование: Февраль 17, 2009, 22:43 от pastor » Записан
BRE
Гость
« Ответ #5 : Февраль 17, 2009, 22:36 »

LPCTSTR используется для строк Unicode. Поэтому надо писать
Может быть и так. Подобные декларации пытаюсь забыть как страшный сон, уже лет 8 как.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 23.