• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Vs 2012 Ошибка При Передаче Аргумента В Функцию Writeline

  • Автор темы War1ock
  • Дата начала
W

War1ock

Господа, приветствую!

разбираю задачки из книги Айвора Хортона (Visual C++ 2010. Полный курс)

Есть код в Visual C++ 2012:


C++:
#include "stdafx.h"

using namespace System;

enum class Year {January, February, March, April, May, June, July, August, September, October, November, December};

int main(array<System::String ^> ^args)

{

Year Mounth = Year::January;
int value = safe_cast<int>(Mounth);
Console::WriteLine(L"Month № {0}, value = {1}", Mounth, value);

}

Не пойму почему вылетает ошибка

error C2665: 'System::Console::WriteLine' : none of the 19 overloads could convert all the argument types

Я понял, что компилятор хочет сказать, что передаю набор аргументов, который не соответствует принимаемым аргументам из методов Console::WriteLine

Но черт побери, не пойму как задать правильно

Поставил VS 2010, тот же пример скомпилился без проблем.
 
R

rrrFer

наверно в новой версии компилятора подпилили ваш writeline...угу, так часто бывает, тут помочь нечем, остается только развести руками и пойти на msdn искать причину(если очень хочется).

Разрешите немного оффтопа?:
почему учите именно visual C++? (ничего кроме любопытства).
 
W

War1ock

наверно в новой версии компилятора подпилили ваш writeline...угу, так часто бывает, тут помочь нечем, остается только развести руками и пойти на msdn искать причину(если очень хочется).

Разрешите немного оффтопа?:
почему учите именно visual C++? (ничего кроме любопытства).

Судя по



действительно подпилили.

но тем не менее есть WriteLine(Object), при этом код

C++:
#include "stdafx.h"
using namespace System;
enum class Year {January, February, March, April, May, June, July, August, September, October, November, December};

int main(array<System::String ^> ^args)
{
Year Mounth = Year::January;
int value = safe_cast<int>(Mounth);
Console::WriteLine(Mounth); 
}

выдает ту же ошибку

Теперь задался вопросом: как вообще вывести в данном случае имена констант перечисления =)
______
Насчет выбора именно Visual С++:
задался целью освоить написание приложений под windows, а будучи еще в универе использовал VS 2006. Поэтому решил все вспомнить и изучить, используя
инструмент с которым хоть немного знаком. Как оказалось, по прошествии времени VS 2006 и VS 2012 это как небо и земля, но тем не менее решил поэкспериментировать с 2012.
 
R

rrrFer

В VS можно писать на стандартном С++(хоть и соответствие их компилятора стандарту оставляет желать лучшего), использовать CLI и Managed C++ не обязательно.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!