Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 13:26   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию D2010. Предупреждения W1057 и W1058 нужно исправить

всем привет!

Проблема:
только начал знакомится с D2010 , и он накидал мне предупреждений:
Код:
[DCC Warning] Unit2.pas(46): W1058 Implicit string cast with potential data loss from 'Char' to 'AnsiString'
[DCC Warning] Unit2.pas(47): W1057 Implicit string cast from 'AnsiString' to 'string'
[DCC Warning] Unit2.pas(48): W1057 Implicit string cast from 'AnsiString' to 'string'
в данном коде:
Код:
function ProcessAndcmdLineIsRunning(aExeFile, aCmdLine: AnsiString): Boolean;
var
  ContinueLoop: Bool;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
  AlredyProc: AnsiString;
  Comp: Integer;
begin
  Result := False;
  FSnapshotHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.DwSize := Sizeof(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  While ContinueLoop Do
  Begin
    If ((AnsiUpperCase(ExtractFileName(FProcessEntry32.SzExeFile))
          = AnsiUpperCase(aExeFile)) Or
        (AnsiUpperCase(AnsiString(FProcessEntry32.SzExeFile)) = AnsiUpperCase(aExeFile)))
      Then

      AlredyProc := Process(FProcessEntry32.SzExeFile).CommandLine; //w1058
    Comp := AnsiCompareStr(AnsiLowerCase(Trim(aCmdLine)),           //w1057
      AnsiLowerCase(Trim(AlredyProc)));                             //w1057
    if not(Comp = 0) then
      Result := True
    else
      Result := False;
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  End;
  CloseHandle(FSnapshotHandle);
end;
помогите исправить...
Человек_Борща вне форума Ответить с цитированием
Старый 09.03.2011, 13:29   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
function ProcessAndcmdLineIsRunning(aExeFile, aCmdLine: String): Boolean;
var
  ContinueLoop: Bool;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
  AlredyProc: String;
  Comp: Integer;
begin
  Result := False;
  FSnapshotHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.DwSize := Sizeof(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  While ContinueLoop Do
  Begin
    If ((UpperCase(ExtractFileName(FProcessEntry32.SzExeFile))
          = UpperCase(aExeFile)) Or
        (UpperCase(String(FProcessEntry32.SzExeFile)) = UpperCase(aExeFile)))
      Then

      AlredyProc := Process(FProcessEntry32.SzExeFile).CommandLine; //w1058
    Comp := CompareStr(LowerCase(Trim(aCmdLine)),           //w1057
      LowerCase(Trim(AlredyProc)));                             //w1057
    if not(Comp = 0) then
      Result := True
    else
      Result := False;
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  End;
  CloseHandle(FSnapshotHandle);
end;
если не ошибаюсь то так.
не Ansi функции должны корректно работать, ибо сейчас юникод и не нужно уточнять локали.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 09.03.2011 в 13:30. Причина: добавил еще одну поправку.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно исправить ошибку marina_sergina Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 16.12.2010 01:07
нужно исправить код melkaya9112 Помощь студентам 1 09.12.2010 00:56
нужно исправить программу) ilnar21 Помощь студентам 1 30.10.2010 22:42
нужно исправить ошибки( basav1k Помощь студентам 3 17.05.2010 22:46
нужно исправить ошибку TheVenny Помощь студентам 17 06.11.2008 16:26