Установите pdcurses в Visual Studio 2017.

Делал игру 2048 на Code::Blocks, но из-за проблем с отладкой перехожу на Visual Studio Community 2017. Там вроде conio.h не работает, поэтому пытаюсь перейти на библиотеку curses.h .

Я прочитал много учебников, но ни один из них не работал для меня. Я посетил их веб-сайт и скачал файл .zip размером 384 килобайта (КБ), но я не знаю, что делать с этими файлами.

Помоги пожалуйста?


person NeoFahrenheit    schedule 10.03.2017    source источник


Ответы (2)


Я нашел очень полезный сайт, на котором рассказывается о PDCurses и его установке в Visual Studio. Несмотря на то, что это для 2010/2013, у меня действительно работало в VS2017 даже демонстрационные программы (с очень мелкими изменениями)!

Итак, вот шаги, которые я сделал (поскольку у вас уже есть PDCurses):

  1. Возьмите командную строку разработчика версии сообщества VS2017 и введите set PDCURSES_SRCDIR=<PDCurses Directory Location>; в моем случае это было

    set PDCURSES_SRCDIR=C:\pdcurses-master
    

    Примечание. Здесь мы устанавливаем переменную среды, необходимую для компиляции. Если вам нужны дополнительные функции, определенные библиотекой pdcurses, вы можете установить соответствующие переменные на этом шаге. Например, если вам нужна поддержка широких символов, вы можете использовать set WIDE=1. Чтобы увидеть все доступные параметры, вы можете открыть файл make (упомянутый в следующем шаге) в любом текстовом редакторе и найти if conditionals.

  2. Перейдите в командном окне в каталог PDCurses/win32 (в моем случае C:\pdcurses-master\win32)

    nmake –f vcwin32.mak
    

    (Это make-файл для PDCurses.) Он создаст pdcurses.lib для нашей Visual Studio.

  3. Теперь нам нужно включить сгенерированную библиотеку в наш проект. Итак, откройте свой проект и перейдите к свойствам проекта.

    • In “VC++ Directories”, change:
      • Include directories: Add a new file-path to PDCurses installation directory, in my case it is C:\pdcurses-master.
      • Каталоги библиотек: добавьте новый путь к файлу в каталог установочной библиотеки PDCurses, в моем случае это C:\pdcurses-master\win32.
    • In C/C++:
      • In “Code Generation” tab, change “Runtime Library” to “Multithreaded Debug (/MTd)”. (Usually, it is set already)
    • In Linker:
      • In “Input” tab, add pdcurses.lib to Additional Dependencies (I initially got confused - remember, it is the input tab of linker)
    • Нажмите «Применить» и «ОК».

Тогда вау! Я запустил несколько примеров программ (демо) из проекта pdcurses, и все они работали у меня с очень небольшими изменениями.

Примечание. Я создал консольное приложение Windows (также известное как Win32, как в Win32 API) с помощью Visual Studio 2017 и загрузил проект. Я включил stdafx.h, и компиляция прошла успешно, и я смог увидеть вывод в окне терминала.

Вышеупомянутый веб-сайт также предоставляет PDF-документ. Инструкция там начинается со скачивания pdcurses с сайта.

person rjkrocks    schedule 30.04.2017
comment
пожалуйста :). Можете ли вы тогда отметить это как решенное? Это помогло бы кому-то еще. С Уважением... - person rjkrocks; 06.07.2017
comment
Я могу подтвердить, что это также сработало для меня в VS2015. Я ценю ссылку. - person Letokteren; 12.07.2017
comment
Обратите внимание, что в последних версиях PDCurses папка изменена. Поэтому нам нужно внести небольшие изменения в каталоги и имена. Win32 заменяется на wincon, а make-файл визуального компилятора c - это не Makefile.vc, а vcwin32.mak. - person rjkrocks; 20.04.2018
comment
Когда я попытался настроить Visual Studio 2017 с описанными выше параметрами, я не смог найти параметр «Библиотека времени выполнения» на шаге 3 в разделе «C/C++». Я пытался скомпилировать в любом случае, и это не сработало. Может кто-нибудь помочь? - person Alex Wang; 23.11.2018
comment
@AlexWang, ты посещал свойства проекта? (Вы можете получить к нему доступ из меню «Проект» или щелкнуть правой кнопкой мыши имя своего проекта, после чего вы должны увидеть свойства проекта. Затем в разделе «Свойства конфигурации» перейдите к C/C++, после чего вы сможете увидеть вкладку «Генерация кода». И следуйте инструкциям. Все лучший. - person rjkrocks; 31.01.2019
comment
Я также иногда замечал, что опция C/C++ в свойстве проекта может быть не видна, если мы никогда не пытались скомпилировать проект. Так что попробуйте. Если вы не можете найти параметр C/C++, перейдите к следующему шагу и продолжите. Попробуйте скомпилировать код. - person rjkrocks; 03.04.2019
comment
Я также протестировал это для Visual Studio 2019, и оно работает. - person rjkrocks; 03.04.2019
comment
Я, должно быть, отсталый. Я проверил это, и хотя pdcurses.lib добавлен к компоновщику, библиотека и пути включения установлены, я получаю ошибку компоновщика для различных функций pdcurses, которые я пытаюсь вызвать. Это происходит в VS2017: -/ - person OOPMan; 17.04.2019
comment
@OOPMan: Какие функции? Это происходит для всех функций? Вы пытаетесь использовать функции Unicode, которые имеют широкую поддержку символов? В этом случае вы включили поддержку широких символов при компиляции библиотеки? - person rjkrocks; 18.04.2019
comment
@rjkrocks Я решил свою проблему. Это было связано с настройкой соглашения о вызовах в моем проекте VS2017. Кажется, что pdcurses компилируется с помощью cdecl, но мой проект (шаблон WinUSB) использовал stdcall. Изменение на cdecl устранило проблему. - person OOPMan; 19.04.2019

Это уже старые новости, но кому-то может быть полезно узнать, что pdcurses упакован на vcpkg.

Чтобы использовать его (конечно, если у вас установлен vcpkg, (Установка vcpkg) )

vcpkg install pdcurses

и вы на гонки. vcpkg позаботится о том, чтобы пути включения и библиотеки были заданы.

person Geoffrey Hoffmann    schedule 18.04.2021