|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.04.2018, 11:18 | #1 |
Пользователь
Регистрация: 03.04.2018
Сообщений: 11
|
MSVC IDE для WinAPI
Интересует ряд вопросов, касательно VisualStudio, для работы только по функционалу WinAPI.
*надеюсь тема в том разделе в котором нужно. Как различить и отключить подсветку и поддержку сторонних библиотечных функций в среде VisualStudio. *Множество библиотек устанавливаются автоматически при установке (любой?) версии VisualStudio, такие как WTL, MFC, NET.. Но ни в одной версии VisualStudio нельзя отключить установку доп. функционала, например (это основная проблема) отключение MFC библиотеки. Когда пишеш код, и даже изучаеш, частенько путаешся, где и какой функционал относится к какой библиотеке. При том что даже создавая проэкты без подключения каких то библиотек и хидеров (которые явно указывают на поддержку сторонних библиотечных функций), многие функции всё равно подсвечиваются и разпознаются средой программирования, и даже компилируются и запускаются (на искомом компьютере где установлена IDE с дефолтым набором библиотек для разработчика). Однако на компьютерах с старыми версиями ОС, на которых хотелось бы чтоб всё работало, программы не будут работать, по крайней мере пока не включиш опции "Use MFC in static Library" ну или ATL.. да и к тому же, даже с этими флагами нужно носить вместе с программой разные версии msvcr100500.dll т.к. после 2000ых(?) каждая IDE использует разные её версии, которые не входят в состав голой ОС (или старой ОС). Основная проблема в библиотеке MFC, ибо именно она создаёт затруднения в способности отличить где же "стандартный" функционал, а где MFC'шный. Собственно вопрос размыт в рамках этого дополнительного функционала, который очень хочется отключить, дабы видеть наверняка во время разработки, что он не принадлежит к каким то сторонним библиотекам. Точно сформулировать вопрос довольно сложно, возможно что ответ может быть как в смене версии среды программировния (номер версии, тип версии, например express), так и в настройках проэкта или же самой IDE VisualStudio. Конечный результат хотелось бы видеть такой: 1) IDE VS для Си/С++ в учебных целях поддерживает и подсвечивает только WinAPI (не считая самого языка). 2) При переносе кода и/или на "устаревшие" ОС, типа WinXP (уж не знаю точно, но лично для меня это "золотой эквивалент"), код будет компилироваться, а приложения запускаться, даже на голые версии (без Service Pack'ов, без доп. DLL и т.п.). *Конешно откат мира до времени Milenium не возможен, да может и не нужен, но лично для себя считаю возврат из удобного Win7-10 режима в стандарт, весьма нужным. Не исключаю возможность смены ОС на Linux, однако GUI от WinXP на мой взгляд! весьма хорошо и просто сделан, хотя всё же имеет ряд недостатков, которые сильно заметны, особенно при попытках использовать GUI WinAPI с использованием графических библиотек OGL или DirectX(DD). |
24.04.2018, 11:48 | #2 | ||||||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
2. Для всех так было. Можете посмотреть в истории какие редистриб паки были. А что вы хотели в старых ОС, естественно, новых либ не будет. Цитата:
Цитата:
ВинХП не поддерживается. Нет можно взять старый компиль и компилировать, но ожидать что даже винапи с новым таргетом запустится на ней глупо. |
||||||||
24.04.2018, 11:58 | #3 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не сможете вы .NET просто так использовать если не создадите CLR проект.
А с WTL что не так? Почему б не использовать его если можно? А если ХР нужен, то можно же добавить соответствующие WINVER, _WIN32_WINNT Цитата:
По-моему это невозможно в современных VS. https://support.microsoft.com/en-us/...table-packages Советую забить на это если у вас нет особой необходимости, на ХР без SP3 много чего не работает, да и вообще на ХР.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 24.04.2018 в 12:00. |
|
24.04.2018, 21:20 | #4 | |
Пользователь
Регистрация: 03.04.2018
Сообщений: 11
|
Как бы мне как раз они и не нужны, а желательно, чтоб их даже и не было. Я почитал о версиях на вики, перед тем как создавать пост, другое дело что можно ли их вообще исключить из более новых версий VS. (я лично пользуюсь 2005, она более менее лайтовая, а всё что позднее - мне не очень нравится, хотя и 2005 уже "продвинутая" по сравнению с 6 например.
Вообще ряд вопросов и ответов весьма сложен, положить всю жизнь на то чтоб изучать тонкости того, как человечество усложняет совершенно не нужные вещи (и не только в плане программирования) лично мне не очень хочется, кое что я знаю, и кое что ещё узнаю, но.. в общем логика я думаю понятна. Хотя конешно, спасибо за наводки, почитаю кое что из того что вы посоветовали. Ставил VS6 недавно, там галочка серая почему то (не снимается). В том то и дело, что сложно отличить, где класс MFC'шный, а где стандартный WinAPI, а на MSDN когда ищеш, там вообще не написано к чему принадлежит то или иное, там единственное что есть, это "request OS version". В данный момент в проэкте например только заголовки: Код:
Не поддерживается, это значит что нельзя позвонить в службу тех поддержки с вопросом о XP? Или что?.. Или я не могу написать "hello world" консольное приложение на VS2017, перенести код на VS6, и скомпилить его с использованием стандартных библиотек? (даже можно на линуксе\и для линукса наверно скомпилить, если это лишь консольное приложение) Потому что любые сторонние библиотеки вызовут проблемы при переносе кода на старые версии ОС или на другие ОС вообще. (конешно, сам WinAPI для линухи это уже приговор использовать Wine, но как я сказал ранее - сам посебе WinAPI сделан весьма хорошо, если его допилить, то это можно было бы назвать в полной мере "золотым эквивалентом", и ко времени, когда откроют полностью код winXP, можно будет.. ладно, тут я уже не силён в ньюансах закона, поэтому продолжать мысль не буду. А по поводу фразы "если можно", то это не значит что это стоит того. Цитата:
А нужно ли это, то что не работает? - Приимущества превышают потери? Как показывает мой опыт, много чего сделано лишь бы облегчить труд программиста, хотя всё тоже что можно сделать новыми трюками, всё это можно было сделать и старыми методами, но самое главное, что даже не смотря на громоздкость кода времён XP, там была очень точная логическая цепочка всего что ты делаеш, и она была намного проще для понимания. Нынешние 100500 наворотов стоят лишь того, чтоб создать как можно больше рабочих мест и занять народ этим вот ковырянием, в место того, чтоб реально развиваться. (напомнило мне извечную тему "мне начальник сказал сделать всё через классы, а я ему говорю, что есть способ проще, надёжнее и быстрее, но раз начальник сказал.." ^^) |
|
24.04.2018, 21:27 | #5 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Вы ж не хотите на ассемблере писать почему-то? Фигня какая-то, а не начальник. Лучше бежать от него. Впрочем зависит от конкретной ситуации и этого самого "простого, надежного и быстрого" способа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
24.04.2018, 23:14 | #6 | |||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
А вы случаем на на вин 98 работаете?
Цитата:
Может ATLшные? Код показывайте. Цитата:
Цитата:
Правильно настроенный СДК. Но фактически студия ама их прописывает при генерации. |
|||
25.04.2018, 09:37 | #7 | |
Пользователь
Регистрация: 03.04.2018
Сообщений: 11
|
Цитата:
Я бы не прочь изучить, но коли с WinAPI на С++ куча проблем (причём они все из за недостатка информации, которую очень сложно найти в качественном виде), то с ассемблером будет ещё сложнее. Но ваш вопрос слишком филосовский.. Я предполагаю где мне нужен ассемблер, и может руки дойдут, и я таки изучу и применю его. С другой стороны вы намекаете, что мол нужно полностью отказаться от всех языков, сделанные для удобства чтения, что противоречит логике "золотой середины". К чему этот вопрос? К галочке не имеет отношения. Структуры то есть.. Каждый частный случай показывать? Я бы хотел сам знать что к чему относится, дабы все 100500 структур\классов\типов\и т.п. не бегать показывать кому то.. Всё тот же вопрос "где на MSDN" написано, какие функции, структуры и т.п. относятся к WinAPI, а какие к надстройке MFC ?". Значит не звони, не обновляй, не запускай/устанавливай новые приложения/драйвера. Эта дискуссия скатывается куда то не туда. Чисто абстрактно, я могу дать несколько вариантов ответов: 1) XP поддерживает то что было в его время, поэтому эту ОС можно использовать для того оборудования и для тех программ которые были созданы для XP. 2) Написать свои программы, свои драйвера. |
|
25.04.2018, 09:49 | #8 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
К тому что на дворе середина 2018 года. Уже и стандарт несколько раз поменялся, и либы обновились, и сдк, и инсталяторы... И? У вас интелисенс не показывает, что это класс или структура? А ну да... там же вс6... Цитата:
https://docs.microsoft.com/en-us/cpp...ce/mfc-classes https://docs.microsoft.com/en-us/cpp...by-mfc-and-atl А ну если вы чисто для себя. Развиваться не собираетесь, то да. Тогда запасайтесь старыми статьями и документациями, а то начнете еще искать конструктор перемещения в вс6. |
||
25.04.2018, 09:51 | #9 | ||
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Цитата:
Цитата:
Толстый тролль? Хорошо, я разжую совсем - в MFC/ATL структур нет, только классы. Если класс, значит MFC/ATL, если структура значит WINAPI. Если читаете про функцию, то это WINAPI, если читаете про класс то это MFC/ATL. MSDN - это справочное пособие а не учебник, оно написано для людей, имеющих базовые знания. |
||
25.04.2018, 12:35 | #10 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Я о том, что "облегчение труда программиста" это не мелочь вообще-то. Даже если это происходит за счет ресурсов системы, то как правило бизнесу намного выгоднее и проще купить более мощное железо, чем найти гуру-программистов-80лвла. Если бы все до сих пор сидели на ассемблере или даже С, то наверняка не было бы многих приложений, сервисов, услуг, которые мы сейчас используем. Ну и менее глобально про тот же С++: появились smart указатели — стало намного проще управлять памятью, меньше риск утечек и ошибок. Неужели они не стоят некоторого времени потраченного на их изучение? Появились async/await и прочие упрощения асинхронности и параллельности в других ЯП: разработчиком стало намного проще реализовывать это, теперь можно позволить делать это не только по особым случаям раз в год, улучшается производительность и отзывчивость ПО. Появились облачные хостинги серверов — стало намного проще и дешевле хостить различные веб-сервисы, расширять их и т.п., во многих случаях можно обойтись без своего физического сервера со всеми идущими с ним в комплекте проблемами. Появились Chef/Ansible, Docker и т.п. — стало намного проще управлять инфраструктурой, сервис не упадет на неделю из-за того, что никто не знает как устанавливать все это чудо на новый сервер, а сисадмин делавший это 4 года назад уже уволился. Кстати, а что за цель-то у вас? Десктопные приложения вообще уже не особо популярный выбор, ну или хотя бы берут что-нибудь типа Qt, а не на винапи с 0.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен классовый оператор для процедуры, и паяльник для IDE | Мордохвост | Общие вопросы Delphi | 5 | 29.08.2015 07:04 |
IDE для Node.js | ACE Valery | Общие вопросы Web | 7 | 22.01.2013 15:08 |
IDE / билд-система для 1С-Битрикс для автоматического оверрайда компонетов/шаблонов | Ivan_32 | WordPress и другие CMS | 0 | 15.12.2012 13:35 |
C++ IDE для OS X | pinguinson | Общие вопросы C/C++ | 0 | 08.12.2012 21:58 |
Стоит ли использовать inline для оптимизации в MSVC? | Kn793 | Общие вопросы C/C++ | 2 | 10.12.2010 16:07 |