Как сравнить с PTCHAR???
От: Konstantinchik  
Дата: 27.05.10 13:05
Оценка:
Подскажите, есть такой код :
BOOL IsUSBDevice(DWORD DevInst)
{
  //****
  DWORD size;
  TCHAR in[256];
  PTCHAR pData = in;
  BOOL usb = FALSE;

  if( CM_Get_Device_ID_Size(&size,DevInst,0) == CR_SUCCESS )
  {
    if( size )
    {
      // pData = new BYTE(size+1);
      if( pData )
      {
        if( CM_Get_Device_ID(DevInst,pData,size+1,0) == CR_SUCCESS )
        {
          *(pData+7) = 0x00;
          if( !strcmp((char *)pData,"USBSTOR") ) 
            usb = TRUE;
        }
        //delete pData;
      }
    }
  }
  return usb;
}

что не так почему не выпоняется сравнение(strcmp((char *)pData,"USBSTOR"))?
Сделал табуляцию!!!! — Кодт
Re: Как сравнить с PTCHAR???
От: LuciferSaratov Россия  
Дата: 27.05.10 13:17
Оценка: 2 (1) +3
Здравствуйте, Konstantinchik, Вы писали:

K>что не так почему не выпоняется сравнение(strcmp((char *)pData,"USBSTOR"))?


Наверное, у тебя проект уникодный, поэтому надо так:
tcscmp(pData,_T("USBSTOR"))
Re[2]: Как сравнить с PTCHAR???
От: Konstantinchik  
Дата: 27.05.10 13:40
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>Здравствуйте, Konstantinchik, Вы писали:


K>>что не так почему не выпоняется сравнение(strcmp((char *)pData,"USBSTOR"))?


LS>Наверное, у тебя проект уникодный, поэтому надо так:

LS>
LS>tcscmp(pData,_T("USBSTOR"))
LS>

спасибо помогло
Re[2]: Как сравнить с PTCHAR???
От: Кодт Россия  
Дата: 27.05.10 13:41
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

K>>что не так почему не выпоняется сравнение(strcmp((char *)pData,"USBSTOR"))?

LS>Наверное, у тебя проект уникодный

И ведь ясно же, что компилятор надавал по пальцам за несоответствие типов — но... чтоб он подавился, нннна (char*)!
Перекуём баги на фичи!
Re[3]: Как сравнить с PTCHAR???
От: Pavel Dvorkin Россия  
Дата: 27.05.10 14:02
Оценка:
Здравствуйте, Кодт, Вы писали:

К>И ведь ясно же, что компилятор надавал по пальцам за несоответствие типов — но... чтоб он подавился, нннна (char*)!


Если б ты знал, сколько раз мне доводилось в студенческих программах видет преобразование к LPWSTR или LPCWSTR обычной строки. Проект юникодный, какой-нибудь функции Win API требуется LPTSTR, который, естественно, есть LPWSTR. Ну и пишут

AnyFunc("Hello");

а получив от компилятора по заслугам, исправляют на

AnyFunc((LPWSTR)"Hello");

а в результате — П.Л., почему не работает

И ведь говорил я им, как правильно!
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.