Насколько актуально программирование Win32 для современных профессионалов? [закрыто]

function scroll_down(){
    $.noConflict();
    jQuery(document).ready(function($) {
        $('html, body').animate({
            scrollTop : $("#bottom").offset().top
        }, 1);
    });
    return false;
}

здесь «bottom» - это идентификатор тега div, куда вы хотите перейти. Для изменения эффектов анимации вы можете изменить время от «1» до другого значения

29
задан IAdapter 3 February 2009 в 08:59
поделиться

15 ответов

Это действительно зависит от того, какие приложения вы хотите разработать. Для большинства целей C # и .NET полностью подходят. Тем не менее, есть определенные виды приложений, которым нужно как можно меньше зависимостей (вспоминаются расширения оболочки), которые непрактичны для приложений .NET. Для тех, кому нужен Win32.

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

31
ответ дан Greg Hewgill 3 February 2009 в 08:59
поделиться

Я все еще зарабатываю часть своих денег, используя их. У нас есть C IDE, которая основана на WinAPI. Это сейчас около 15 лет, и все еще работает ;-). Его полная загрузка составляет около 5 МБ, потому что вы ничего не получите в мире .NET. Так что для нас это все еще ценная вещь ...

1
ответ дан Friedrich 3 February 2009 в 08:59
поделиться

Если вам не нужны некоторые функции, отсутствующие в .NET Framework (например, получение подробной информации о драйверах принтера), нет. Это примерно 99% (конечно, произвольное значение, которое я только что составил) от того, что вы будете делать.

Даже если вы использовали Win32, а не .NET, действительно ли нужно изучать ту же глубину, что и книга? Просмотрите разделы, узнайте, что если вы столкнетесь с какой-то проблемой в будущем, вы знаете, где ее искать. Тогда остановись. Идите вглубь, когда вам это нужно или у вас будет свободное время.

2
ответ дан moogs 3 February 2009 в 08:59
поделиться

Это очень актуально, если вы пишете C # на Windows. Не все функции Win32 были представлены через библиотеки .Net. Конкретным примером этого является метод сообщения WM_SETREDRAW, который я описываю здесь: WM_SETREDRAW . Это также необходимо в другое время для решения проблем управления.

Кроме того, понимание того, как работают Win32 и Windows, даст вам лучшее понимание различных аспектов C # /. Net, таких как:

  • Что на самом деле делает Control.Invoke ()?
  • В чем разница между Control.BeginInvoke и Control.Invoke?
  • Что фактически вызывает события моего элемента управления, например OnClick и т. Д. И как я могу это отладить.

Тем не менее, WPF меняет все это, и если вы пишете только код .Net 3 / 3.5, мой аргумент теряет свою актуальность.

13
ответ дан Community 3 February 2009 в 08:59
поделиться

Я думаю, что на этот вопрос уже дан ответ, но если вы разрабатываете .NET 2.0 или что-то выигрывает в .NET, вы неизбежно столкнетесь с множеством проблем, связанных с тем, как некоторые части фреймворка обертывают win32, mfc и вас ». Мне нужно разобраться в этом, чтобы заставить вещи работать так, как задумано.

1
ответ дан Oskar Duveborn 3 February 2009 в 08:59
поделиться

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

Кроме того, он может быть заключен в языки сценариев, такие как Autoit с DllCall

0
ответ дан VonC 3 February 2009 в 08:59
поделиться

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

Итак, ДА, важно, по крайней мере, знать основы API WIN32, может быть, не в глубине, а, по крайней мере, знать, что он есть, в основе всего, что вы будете кодировать.

30
ответ дан AlexDrenea 3 February 2009 в 08:59
поделиться

На мой взгляд, нет. Я изучил это давным-давно, так что вам не придется!

Я думаю, это здорово, что вы сначала изучили C, и я бы продолжал писать программы на C время от времени, но я не вижу почему было бы полезно разобраться с Win32 API. Честно говоря, это был большой беспорядок.

12
ответ дан Nosredna 3 February 2009 в 08:59
поделиться

Если вы пытаетесь решить бизнес-задачи, то для программирования систем Win32 лучше, чем С, есть инструменты. Clarion. Delphi. И другие я не сомневаюсь.

Но я думаю, что для изучения , как все работает , ты в хорошей форме с C.

2
ответ дан Stu Andrews 3 February 2009 в 08:59
поделиться

Определенно изучите основы, как упоминает AlexDrenea. В то время как .NET защищает вас от множества вызовов Win32 API. Win32 API настолько огромен, что вы обязательно столкнетесь с ситуациями, когда .NET его не обернул.

Обычная ситуация в реальной жизни сортировка стрелок в ListViewColumns

4
ответ дан Community 3 February 2009 в 08:59
поделиться

Согласно комментарию Грега, это в некоторой степени зависит от домена. Я много занимаюсь программированием для Windows CE / mobile, где .NET слишком сложен для многих устройств, а другие фреймворки, такие как MFC, реализованы не полностью. В этом контексте большая часть Win32 по-прежнему очень актуальна.

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

3
ответ дан SmacL 3 February 2009 в 08:59
поделиться

Я не думаю, что «изучение Win32 API» реально для кого-либо. API-интерфейсы (да, их больше одного) огромны, и вам вряд ли когда-нибудь потребуется знать все из них подробно. Я бы порекомендовал почитать некоторые основы (например, создание окон, обмен сообщениями в окнах, оконные процедуры, возможно, некоторые GDI и т. Д.) И использовать MSDN для поиска остальных, когда вам это нужно.

4
ответ дан Anders Sandvig 3 February 2009 в 08:59
поделиться

Некоторые вещи не могут быть сделаны без вызовов Win API, но с каждой версией .net эти вещи становятся все меньше и меньше, поэтому нет, я бы не узнал Win API, если я, где вы ..

0
ответ дан Peter 3 February 2009 в 08:59
поделиться

Я думаю, что важно изучить основы. Если вы узнали достаточно, чтобы отобразить окно с некоторыми полями, кнопками и меню. Может быть, нарисовать что-то в отдельном окне. Это поможет вам узнать основы того, как на самом деле работает Windows. Я верю, что понимание цикла сообщений и осознание того, что почти все, что вы видите, является окном, являются фундаментальными вещами, которые должен знать каждый. Мои глаза действительно открылись, когда я впервые понял, что кнопка - это ее собственное окно. Затем он помогает понять, что функции вещей можно включать и выключать, отправляя эти сообщения Windows. Создание подклассов окон позволяет вам получить доступ к функциям, которые вам не доступны в таких вещах, как .NET или VB Classic, и позволит вам расширить функциональность окна.

8
ответ дан bruceatk 3 February 2009 в 08:59
поделиться

Это много раз обсуждалось в Профессиональной Win32 api Newsgroup (news: //comp.os.ms-windows.programmer.win32)

(величайшими гуру и авторами бестселлеров (Petzold, Руссинович и т. Д.) В мире ...)

0
ответ дан 3 February 2009 в 08:59
поделиться
Другие вопросы по тегам:

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