Visual studio шестнадцатиричный вид

Обновлено: 07.07.2024

У меня есть проблема с моим visual studio 2005 годом. Я инициализировал целочисленную переменную и прикрепил к ней отладчик, чтобы проверить ее значение во время выполнения. Когда я запускаю приложение, значение переменной, которое оно показывает, является шестнадцатеричным эквивалентом инициализированного значения.

Как изменить его, чтобы он отображался в десятичной системе счисления?

2 ответа

Я работаю со строковым столбцом длиной 38 символов, который на самом деле является числовым. например, ( 38 символы длинные). Как мне привести его в длинное целое число ? Я пробовал функцию cast с IntegerType, LongType и DoubleType, и когда я пытаюсь.

Щелкните правой кнопкой мыши по значению (например, на панели "Locals") и снимите флажок "Hexadecimal Display".

Щелкните правой кнопкой мыши значение в средстве просмотра, выберите пункт меню с надписью "Шестнадцатеричное отображение" и снимите флажок.

Похожие вопросы:

В настоящее время, когда я печатаю значение переменной v в GDB ( print v ) Я получаю целое число. Можно ли заставить GDB печатать такие целочисленные переменные в шестнадцатеричном или двоичном.

Кто-нибудь знает, можно ли вывести значения в шестнадцатеричном формате через точки visual studio trace? Спасибо!

Я работаю со строковым столбцом длиной 38 символов, который на самом деле является числовым. например, ( 38 символы длинные). Как мне привести его в.

Допустим, мы можем отметить выходной день активным или неактивным. Мне нужно использовать целое число, чтобы сказать системе, что я отметил день активным или неактивным, чтобы получить это целое.

Мы знаем, что -2*4^31 + 1 = -9.223.372.036.854.775.807, самое низкое значение, которое вы можете хранить в long long, как было сказано здесь: какой диапазон значений могут хранить целочисленные типы.

то, что я должен использовать вместо ToInt32 , чтобы преобразовать длинное строковое числовое значение 10000000001 в целое число, так что этот способ ограничен десятизначным числом: string str1 =.

Нужно преобразовать двойное значение в большое целое или длинное значение. пробовал с большим целым числом, но преобразованное значение отличается от исходного. double doub =.

Я использую Visual Studio 2008, и я только что заметил, что отладчик отображает целочисленные значения как шестнадцатеричные при наведении курсора на переменные, а также в непосредственном окне. Наверное, я случайно нажал клавишу быстрого доступа или что-то в этом роде.

У кого-нибудь это было раньше? Как установить его обратно для отображения в decimal?

щелкните правой кнопкой мыши Посмотреть Окно или Окно и снимите флажок шестнадцатеричный параметр отображения.

enter image description here

вы также можете выбрать шестнадцатеричное или decimal отображение на основе каждой переменной в окно просмотра Visual Studio путем добавления спецификатора формата отладчика к имени переменной. В окне watch введите:

другие очень полезные спецификаторы формата - ac (см. сноску) для "всегда вычислять" и nq для отображения без кавычек.- Их можно использовать вместе:--15-->

nq is полезно внутри DebuggerDisplay атрибуты, которые могут отображаться в классе:

. или на одном или нескольких полях внутри класса:

  • обратите внимание, что более ранние версии страницы MSDN doc неправильно сказали " Ac "(с заглавной "A") - что не работает

при запуске Visual Studio в режиме отладки отображается шестнадцатеричная кнопка для включения / выключения шестнадцатеричного дисплея

Visual Studio Debug Mode - hex button

в Visual Studio 2010 я также видел его на панели инструментов отладки, он был выделен желтым "шестнадцатеричным", я просто щелкнул его, и он вернулся к (нормальным) десятичным значениям

щелкните правой кнопкой мыши на клиентском пространстве почти каждого окна отладки (кроме немедленного окна) - watch / locals/autos / threads / call stack-and снимите флажок "шестнадцатеричный дисплей". Есть также кнопка " Hex " на панели инструментов отладки (право "перешагнуть" по умолчанию) при отладке.

Я использую Visual Studio 2008, и я только что заметил, что отладчик отображает целочисленные значения как Hex, когда я наводил на переменные, а также в непосредственном окне. Наверное, я, должно быть, случайно нажал клавишу быстрого доступа или что-то в этом роде.

Кто-нибудь имел это раньше? Как установить его обратно для отображения в десятичном формате?

ОТВЕТЫ

Ответ 1

Щелкните правой кнопкой мыши "Смотреть окно" или Немедленное окно и снимите флажок "Экран шестнадцатеричного отображения".

enter image description here

Ответ 2

Вы также можете выбрать шестнадцатеричный или десятичный дисплей для каждой переменной в окне Visual Studio, добавив спецификатор формата отладчика к имени переменной. В окне просмотра введите:

Другими очень полезными спецификаторами формата являются ac (см. сноску) для "всегда вычислять" и nq для отображения с "без кавычек". Они могут использоваться вместе:

nq полезен внутри атрибутов DebuggerDisplay , которые могут отображаться в классе:

. или по одному или нескольким полям внутри класса:

  • обратите внимание, что более ранние версии страницы документа MSDN неправильно указали "Ac" (с капиталом "A" ), который не работает.

Ответ 3

Появляется кнопка Hex, когда Visual Studio запускается в режиме отладки, чтобы включить/отключить экран шестнадцатеричного экрана

Visual Studio Debug Mode - hex button

Ответ 4

В Visual Studio 2010 я также видел его на панели инструментов Debug, он был выделен желтым "шестнадцатеричным", я просто щелкнул его и вернулся к (нормальным) десятичным значениям

Ответ 5

Щелкните правой кнопкой мыши по клиентскому пространству почти каждого окна отладки (за исключением окна Immediate) - watch/locals/autos/threads/call stack - и снимите флажок "Шестнадцатеричный дисплей" . Там также кнопка "Hex" в панели инструментов отладки (справа на "Step Over" по умолчанию) при отладке.

Скриншот панели выбора компонентов для создания графического приложения

1. В первую очередь перечислим, какие компоненты должны быть установлены для создания графического приложения на языке С++. Их три, все относятся к разделу "Desktop development with C++":
- VC++ 2017 v141 toolset (x86,x64)
- Windows 10 SDK (10.0.15063.0) for Desktop C++ x86 and x64
- C++/CLI support

Первые два нужны для создания любого приложения на С++, третий именно для создания графической оболочки программы. Во время исследования данной темы мною подключалось два десятка других - пользы новичкам от них нету.

Окно выбора типа создаваемого приложения

2. После установки среды разработки переходим
File > New > Project. ( ^+N )
В появившемся окне отыскиваем Installed > Visual C++ > CLR > CLR Empty Project

Поля внизу заполняем традиционным для таких программ способом. В названии проекта лучше не допускать пробелов, иначе вам потом придётся мудрить в коде.

3. Необходимо добавить в приложение главную форму. Есть два равносильных пути достижения этой цели.
Первый: в "Solution Explorer" правой кнопкой мыши на названии проекта, во всплывшем контексном меню Add > New Item.
Второй способ: в главном меню выбираем Project > Add New Item.
Или просто нажимаем ^+A

выбор Windows Form

Во появившемся окне Visual C++ > UI > Windows Form

Устранение ошибки 0x8000000A, иногда происходящей при создании формы

Главная форма программы создана. На некоторых компьютерах в данный момент возможно выскакивание ошибки 0x8000000A, в этом случае нужно просто закрыть вкладку.

Эта ошибка хорошо известна ещё по Visual Studio 2015. Можете почитать её обсуждение, к примеру, на сайте Microsoft по ссылке1, ссылке2, ссылке3. И более лучшего решения, чем закрывать вкладку, ещё нет. По всей видимости, команда разработчиков Visual Studio не считает эту ошибку достаточно серьёзным делом, чтобы ломать о неё копья.

Выбор в контекстном меню элемента Свойства

4. Но мало просто создать форму, нужно вплести её в создаваемую программу. Для этого в "Solution Explorer" правой кнопкой мыши на названии проекта, во всплывшем контексном меню выбрать Properties .

Выбор содсистемы (SubSystem)

В открывшемся окне произвести два действия.
• Linker > System > SubSystem , из раскрывающегося списка выбрать " Windows (/SUBSYSTEM:WINDOWS) "

Прописывание точки привязки (Entry Point)

• Linker > Advanced > Entry Point . В пустое поле вписать " main " (без кавычек).

5. В "Solution Explorer" двойным щелчком открыть в редакторе файл MyForm.cpp. Скопировать в него текст

Отлично, всё готово! Теперь проект компилируем и запускаем. Но если у вас ранее выскакивала 0x8000000A, то быстрее всего вам придётся перезапустить Visual Studio и вновь загрузить в нём проект. Далее ошибка ни в чём не проявится.

Вызов панели Toolbox, также показана сама панель

6. Для того, чтобы добавить на нашу только что созданную форму новые элементы, понадобится панель Toolbox. Полезно запомнить горячую клавишу ^!X

Работа с размещением элементов на форме сложностей вызвать не должна. Работает здесь всё удобнее, чем wxWidgets в CodeBlocks или wxDev-C++. Никаких глюков мною замечено не было.

Для изменения свойств только что созданного элемента интерфейса щёлкните на нём правой кнопкой и в контекстном меню выберите, соответственно, Properties.

Испытаем кнопку в работе. Сделаем так, чтобы по её названию появлялось окно с умным текстом. Двойной щелчок по элементу на форме вызовет редактор кода с уже прописанным в нём шаблоном. Добавим внутрь фигурных скобок команду

MessageBox::Show("Hello World",
"My heading", MessageBoxButtons::OKCancel,
MessageBoxIcon::Asterisk);

Работающее простейшее графическое приложение, созданное в VS2017

Запускаем и проверяем!

Список Solution Configuration, выставленный на Release

Если вдруг не запустится, то первым делом проверяем, что выставлено в раскрывающемся списке Solution Configurations . Он находится на панели инструментов (под главным меню). Там должно быть Release (а не Debug) .

Дополнительная информация

Альтернативные способы создания графических приложений в Visual Studio 2017.

1. UWP (Universal Windows Platfrom application) - универсальные приложения, способные запускаться на Windows 10, Windows 10 Mobile и аналогичных самых современных платформах от Microsoft. Платформа разработана как расширение Windows Runtime. Всё бы хорошо, но данные приложения не могут запускаться на более старых версиях Windows, даже на восьмёрке.

Пара слов для общего развития о нескольких технологиях, на которые вы будете постоянно натыкаться при чтении документации по разработке GUI в Visual Studio.

ATL (Active Template Library) - набор шаблонных классов языка C++, предназначенных для упрощения написания COM-компонентов.
MFC (Microsoft Foundation Classes) - библиотека объектов, помогающая профессиональным разработчикам создавать десктопные приложения. Что-то вроде более усложнённого и навороченного варианта ATL. ATL и MFC являются хорошими вещами, и с их задействованием также можно создавать графические приложения. Но это инструменты, требующие наличия углублённых знаний тематики.

IncrediBuild - технология ускорения компиляции и сборки приложений с помощью подключения дополнительных компьютеров. К методам создания графических интерфейсов это напрямую не относится.

Примечания:
В интернете можно наткнуться на заголовок "Full C and C++ IDE with Visual Studio". Оттуда закачиваются те же самые стандартные дистрибутивы Visual Studio, проверено по контрольным суммам.

Код и внешний вид простейшего графического калькулятора

P.S.
Теперь можно немного поэкспериментировать с элементами интерфейса. Ниже показан код простейшего графического калькулятора:

private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) Application::Exit();
>

private: System::Void radioButton1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "+";
>
private: System::Void radioButton2_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "-";
>
private: System::Void radioButton3_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "*";
>
private: System::Void radioButton4_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "/";
>

private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) char sw = System::Convert::ToChar(label1->Text);
double a = System::Convert::ToDouble(textBox1->Text);
double b = System::Convert::ToDouble(textBox2->Text);
double r;
switch (sw) case '+':
r = a + b;
break;
case '-':
r = a - b;
break;
case '*':
r = a * b;
break;
case '/':
r = a / b;
break;
>
label2->Text = "Result: " + System::Convert::ToString(r);
>

Простой стандандартный windows-калькулятор

А теперь можно попытаться сотворить что-то более похожее на стандартное window-приложение. Пока простейшее.

double iFirstNum;
double iSecondNum;
double iResult;
String^ iOperator;

private: System::Void btnC_Click(System::Object^ sender, System::EventArgs^ e) /*button C ("Global Clear" - clears the entire calculation*/
tbDisplay->Text = "0";
lblShowOp->Text = "";
>

private: System::Void btnCE_Click(System::Object^ sender, System::EventArgs^ e) <
/*button CE ("Clear Entry" is supposed to be used to clear only the thing you are currently
typing into the calculator, before you have performed any operation on it.*/
tbDisplay->Text = "0";
>

private: System::Void buttonS_Number_Click(System::Object^ sender, System::EventArgs^ e) <
//Number Buttons Event
Button ^ Numbers = safe_cast<Button^>(sender);
if (tbDisplay->Text == "0")
tbDisplay->Text = Numbers->Text;
else
tbDisplay->Text += Numbers->Text;
>

private: System::Void buttonS_Arithmetic_Click(System::Object^ sender, System::EventArgs^ e) <
//Operator Buttons Event
Button ^ op = safe_cast<Button^>(sender);
iFirstNum = Double::Parse(tbDisplay->Text);
tbDisplay->Text = "0";
iOperator = op->Text;
lblShowOp->Text = System::Convert::ToString(iFirstNum) + " " + iOperator;
>

private: System::Void btnEquals_Click(System::Object^ sender, System::EventArgs^ e) <
//Equals
iSecondNum = Double::Parse(tbDisplay->Text);

if (iOperator == "+")
iResult = iFirstNum + iSecondNum;
else if (iOperator == "-")
iResult = iFirstNum - iSecondNum;
else if (iOperator == "*")
iResult = iFirstNum * iSecondNum;
else if (iOperator == "/")
iResult = iFirstNum / iSecondNum;
else MessageBox::Show("Unknown operation.\nSomething wrong.",
"error", MessageBoxButtons::OK,
MessageBoxIcon::Error);
return;
>

private: System::Void btnDot_Click(System::Object^ sender, System::EventArgs^ e) <
//Decimal Point
if (!tbDisplay->Text->Contains("."))
tbDisplay->Text += ".";
>

private: System::Void btnPM_Click(System::Object^ sender, System::EventArgs^ e) <
//Plus-Minus
if (tbDisplay->Text->Contains("-"))
tbDisplay->Text = tbDisplay->Text->Remove(0, 1);
else
tbDisplay->Text = "-" + tbDisplay->Text;
>

Код создан на основе видеоролика
"Visual C++ Calculator Tutorial with Decimal Point and Backspace" (37:59, DJ Oamen, 2016 Jan 2, Visual C++ 2010) ,
но имеет ряд отличий.

Как продолжение, существует видеоролик
"Visual C++ Scientific Calculator Tutorial" (53:31, Paul Oamen, 2016 Oct 2, Visual Studio 2015). Судя по голосу, автор тот же. К показанному выше калькулятору прибавляется конвертер температуры и ряд более научных функций. Предупрежу, что итоговое "творение" имеет массу изъянов и глюков, поэтому видео можно просматривать исключительно для изучение приёмов программирования. Но не используйте его в качестве образца того, как нужно создавать калькуляторы.

Читайте также: