• XSS.stack #1 – первый литературный журнал от юзеров форума

Помогите с решением ошибки в коде C#

Russian_Coder

(L2) cache
Забанен
Регистрация
31.01.2024
Сообщения
424
Реакции
189
Пожалуйста, обратите внимание, что пользователь заблокирован
Помогите с решением ошибки в коде C#

Вообщем вот сам код

C#:
if (CreateProcess(targetPath, null, IntPtr.Zero, IntPtr.Zero, false, 0x00000004, IntPtr.Zero, null, ref si, out pi) != 0 && pi.hProcess.ToInt32() != 0 && pi.hThread.ToInt32() != 0)
{

}

Ошибка

Код:
Ошибка    CS0019    Оператор "!=" невозможно применить к операнду типа "IntPtr" и "int".

1712077330445.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
CreateProcess возвращает дескриптор, попробуй заменить 0 на тот же intPtr.zero
от души. помогло)
 
Gemini говорит:
Ошибка CS0019 возникает потому что вы пытаетесь сравнить переменную типа IntPtr с числом типа int с помощью оператора !=.
IntPtr - это структура, которая хранит указатель на память, а int - это целое число. В C# нельзя напрямую сравнивать структуры и числа с помощью операторов сравнения.

C#:
if (CreateProcess(targetPath, null, IntPtr.Zero, IntPtr.Zero, false, 0x00000004, IntPtr.Zero, null, ref si, out pi) != 0 &&
    pi.hProcess.ToInt32() != 0 &&
    pi.hThread.ToInt32() != 0)
{


}

Или

C#:
if (CreateProcess(targetPath, null, IntPtr.Zero, IntPtr.Zero, false, 0x00000004, IntPtr.Zero, null, ref si, out pi) != 0 &&
    !pi.hProcess.Equals(IntPtr.Zero) &&
    !pi.hThread.Equals(IntPtr.Zero))
{


}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх