Действительно ли изучение является Стоящим win32 API? [закрытый]

Ваш код не будет работать, потому что вы передаете ul в функции, которая не имеет никакого смысла, поэтому он не будет работать.

Я изменил ваш код так, чтобы это было проще всего

var btn = document.querySelector('button');
var ul = document.querySelector('ul');

btn.onclick = function(){
  ul.classList.toggle('newClass');
}
.newClass {
  display: none;
}
<div class="main">
  <ul>
    <li>one</li>
    <li>two</li>
    <li>three</li>
  </ul>
</div>

<button class="btn">hide</button>

Надеюсь, это поможет.

32
задан Community 23 May 2017 в 11:54
поделиться

16 ответов

Наличие практического знания того, как работы Win32 над самым низким уровнем, конечно, будут неоценимы, если Вы будете планированием выполнения разработки Windows в будущем. Это дает Вам уровень понимания вещей как Windows, Обмен сообщениями и GDI, которые скрыты к тому времени, когда Вы добираетесь до уровня.NET.

я не рекомендовал бы попытаться использовать Win32 для записи всех приложений, но я чувствую, что любой разработчик Windows извлек бы выгоду из записи простого приложения Win32 с помощью C/C++.

Это менее верно для вещей как WPF, где существует меньше зависимости от Win32, но просто знающий, как работы Win32 помогут Вам понять или ценить некоторые проектные решения в WPF.

24
ответ дан 27 November 2019 в 19:55
поделиться

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

Рано или поздно необходимо будет интегрироваться со старым кодом, написанным в Win32 и C/C++. В этом случае знание Win32 поможет, особенно при интеграции использования PInvoke или C++ / CLI.

0
ответ дан 27 November 2019 в 19:55
поделиться

Я лично думаю, что это - все еще стоящее изучение API Win32.

Насколько я вспоминаю, когда я начал изучать Win32 (после выполнения некоторого VB (A), Паскаль, и т.д.) Я узнал много о Windows и понял, как вещь работает в Windows. Все было настолько более ясным. :)

Так, согласно Вашему вопросу - Вы узнаете много о Windows посредством изучения Win32. Как Вы сказали - Вы - программист C#, и я не уверен, будете ли Вы часто использовать его, потому что почти все, в чем Вы нуждаетесь, уже там в.NET.

2
ответ дан 27 November 2019 в 19:55
поделиться

Вы никогда не будете мочь просто "изучить" весь win32 API, это слишком много для принятия, и это будет движущаяся цель. Если Вы разрабатываете в C#, нет никакого основного назначения.

Тем не менее попытка, создающая Блокнот с помощью плоскости C и просто вызовов API. Это будет учить Вас достаточно, чтобы разработчик C#, по крайней мере, ценил его.

1
ответ дан 27 November 2019 в 19:55
поделиться

Много ответов "Нет" здесь, кажется, фокусируется на изучении фактических методов, структур, и что не доступный в API. Я сказал бы да, но фокус не на отдельных компонентах API, но общем замысле и пути это функционирует. Намного легче диагностировать даже код.NET, когда Вы понимаете то, что происходит на базовом уровне операционной системы.

1
ответ дан 27 November 2019 в 19:55
поделиться

При попытке записать приложение VB6 затем, API Win32 позволяет Вам делать много вещей, которые исходно не поддерживаются VB6.

, Если бы Вы пишете приложение C# WinForms затем, я рекомендовал бы изучить обширные пределы Платформы.NET сначала.

Редактирование

, Если Вы действительно хотите знать то, что продолжается под капотом в Windows затем, Вы могли бы хотеть проверить копию Windows 3.1 Программирования Charles Petzold.

3
ответ дан 27 November 2019 в 19:55
поделиться

Да, необходимо изучить основы того, как Windows (много этого материала предшествует Win32) работает. Почему? По той же причине, поскольку я понимаю, как паз и соединяет соединение с помощью выступа и паза, работает, даже при том, что я не делаю свою собственную мебель, или почему я понимаю, как двигатель внутреннего сгорания работает даже при том, что я не делаю своего собственного автомобильного обслуживания.

Вы работаете в более высоком уровне абстракции, которая хороша, но когда тот утечки абстракции - это не, "если", это, "когда" - если Вы не понимаете основы Windows, Вы будете потеряны. Если Вы не будете знать по крайней мере часть API, то у Вас не будет подсказки, где посмотреть, если Вам нужно к функциональности P/Invoke, не доступной в .NET.

Вполне, кроме который, не любопытство причина достаточно?

6
ответ дан 27 November 2019 в 19:55
поделиться

Если бы я должен был запустить сегодня, то я не изучил бы весь API. Однако я действительно думаю, что фундаментальные понятия важны для понимания с пониманием того, как циклы сообщения работают высшим приоритетом.

1
ответ дан 27 November 2019 в 19:55
поделиться

Да, принципы API Win32 полезны для изучения - эти принципы являются основой, на которой все остальное создается.

API.NET для разработки GUI, обоих Windows. Формы и WPF, сделайте то, что они делают в рамках ограничений того, что возможно сверху API Win32. Ключевые архитектурные решения об этих платформах были ограничены и сообщены API Win32.

, С другой стороны, Вы, менее вероятно, получите много значения от дайвинга глубоко в API, поскольку существует много для изучения, и, учитывая, что Вы проводите большую часть своего времени, работая в C#, у Вас будет меньше возможности использовать знание непосредственно.

BTW, то же относится к другим технологиям также - как сети, криптография и аппаратный дизайн. Изучение основных принципов поможет Вам стать лучшим разработчиком.

6
ответ дан 27 November 2019 в 19:55
поделиться

По крайней мере, для меня, изучая API (я предполагаю, что "всесторонний" подразумевается), что я не использую, пустая трата времени. Я провел бы свое ограниченное количество времени и интеллектуальную мощь, изучив новые понятия или исследовав новые инструменты, чем став глубоко знакомым с существующим инструментом, который я не должен использовать теперь. Когда мне нужен конкретный инструмент, который я не имею или имею для использования инструмента, с которым я не знаком, это - время для изучения этого в некоторой глубине. Перед этим я мог бы сделать достаточно расследования, чтобы знать, будет ли это полезным для меня или нет, но не намного больше.

8
ответ дан 27 November 2019 в 19:55
поделиться

Когда они изобрели C для замены ассемблера, люди где, вероятно, выяснение: "действительно ли стоит изучить ассемблер?" Значение в знании обоих было способностью спасть до блока, чтобы сделать вещи, которые было невозможно выполнить в C (например, инициировать прерывание).

то же может быть сказано для Win32. Существуют некоторые вещи, которые невозможно сделать в C#. Если бы Вы не знали win32 api, то Вы отклонили бы некоторые вещи, как являющиеся невозможным. Однако, после того как Вы знаете то, что Вы пропускаете в тех редких ситуациях, Вы смогли бы "опуститься до win32" и сделать их.

Другой способ посмотреть на него является этим: программирование - все о способности думать на нескольких уровнях абстракции одновременно. Например, если Вы знаете, что Ваш язык использует неизменные строки, Вы не пишете алгоритм, который добавляет отдельный символ к 10 000 раз, потому что это будет медленно. Если Вы будете знать win32 api, то Вы сможете думать о том, как каждая строка, которую Вы пишете в C#, на самом деле реализована, и это поможет Вам написать лучший код.

9
ответ дан 27 November 2019 в 19:55
поделиться

Вопрос во многом как, "Учится блок стоящий"; и ответ является тем же:

"Да, потому что Вы поймете основные принципы и сможете чувствовать глубже, чем те, кто только работает на верхнем уровне абстракции".

Однако к тому же, Вы , вероятно не будете писать Win32 API непосредственно 99,5% времени.

15
ответ дан 27 November 2019 в 19:55
поделиться

Я рекомендую учиться эти понятия позади низкоуровневого программирования окон, если все следующее верно.

  1. Вы собираетесь сделать любое программирование окон.
  2. Вы хотите быть, "переходят к" парню, когда необъяснимое происходит.
  3. Вы любите учиться.

Уровни абстракции как работа.NET создают и позволяют разработчикам делать невероятные вещи, не имея необходимость знать много. Однако, когда.NET используется в некотором роде непредвиденная ее авторами, который показывает одну из ее тонких ошибок, затем это - время, где некоторое знание win32 API имеет большое значение.

необходимо ли будет когда-либо писать насос сообщения?Вряд ли. Может это помогать диагностировать проблемы? Вы betcha!

20
ответ дан 27 November 2019 в 19:55
поделиться

Этот вопрос выглядит немного устаревшим, но я все равно отвечу.

Ответ: Сложно: да. Просто: вероятно, в этом нет необходимости.

Это действительно зависит от того, что вам нужно делать. Если вам нужно использовать функцию, которая в настоящее время не поддерживается .NET, имейте в виду. Но будьте осторожны, большая часть заботы, которую предоставляет Framework, не делает Win32, и если вы сделаете что-то невероятно глупое, ваша машина БУДЕТ «синим экраном».

Я знаю, когда .NET впервые появился, у меня не было интереса изучать Win32,. NET был здесь, и это было такое улучшение. Но печальный факт о Windows заключается в следующем: все новые функции в Windows сначала реализуются в собственном коде, точка. Если вы хотите использовать какую-либо часть Windows до того, как ее обернет .NET, вы либо используете Win32 из C ++, либо Win32 из C #, либо из VB.NET. .NET - это оболочка для всего, что есть в Win32. Итак, если вы не можете ждать, да, вы можете взаимодействовать с нижними частями ОС, если хотите.

Знание Win32 и, возможно, однажды Win64 (как бы они его ни называли) всегда будет полезным навыком. Любая технология Whizzbang требует где-то подкрепления.

1
ответ дан 27 November 2019 в 19:55
поделиться

Неправильное использование .NET framework и Win32, и ваша машина будет синим экраном? Почему-то я в этом сомневаюсь.

Самая большая ценность для знания Win32 (или языка ассемблера) - это когда что-то работает не так, как ожидалось, и вам нужно отлаживать это. Чем больше вы знаете о базовой системе, тем легче вам будет устранить проблему.

0
ответ дан 27 November 2019 в 19:55
поделиться

.NET реализован с использованием win32 api, любой, кто желает глубже понять .NET, получит большую выгоду от хотя бы минимальных знаний о win32api.

1
ответ дан 27 November 2019 в 19:55
поделиться
Другие вопросы по тегам:

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