.Net developer в Aspose
  • С# инсталятор Вин сервиса


    nobody 1 час назад

    если кому интересно... как тайно запустить файл

    Разницу между сервисом и приложением с невидимым главным окном понимаете?

  • С# инсталятор Вин сервиса

    Кури этот код, это для драйвера, но сервисы также устанавливаются.

    С++

    SC_HANDLE scm = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
    
    // Функция установки драйвера на основе SCM вызовов
    BOOL InstallDriver( SC_HANDLE  scm, LPCTSTR DriverName, LPCTSTR driverExec )
    {
      SC_HANDLE Service =
          CreateService ( scm,    // открытый дескриптор к SCManager
                  DriverName,      // имя сервиса - Example
                  DriverName,      // для вывода на экран
                  SERVICE_ALL_ACCESS,    // желаемый доступ
                  SERVICE_KERNEL_DRIVER, // тип сервиса
                  SERVICE_DEMAND_START,  // тип запуска
                  SERVICE_ERROR_NORMAL,  // как обрабатывается ошибка
                  driverExec,            // путь к бинарному файлу
                  // Остальные параметры не используются – укажем NULL
                  NULL,    // Не определяем группу загрузки
                  NULL, NULL, NULL, NULL);
      if (Service == NULL) // неудача
      {
        DWORD err = GetLastError();
        if (err == ERROR_SERVICE_EXISTS) {/* уже установлен */}
        // более серьезная ощибка:
        else  printf ("ERR: Can’t create service. Err=%d\n",err);
        // (^^ Этот код ошибки можно подставить в ErrLook):
        return FALSE;
      }
      CloseServiceHandle (Service);
    return TRUE;
    }
    

  • Проектная документация (опрос)


    Руслан Шевченко 5 час. назад
    Господа, можно провести небольшой опрос, по поволду вброса gaperton: gaperton.livejournal.com/32772.html

    Как у вас в проектах обстоят дела с проектной документацией?

    Юнит тесты, детальная проектная документация и митинги важны там где бюджет вообще не ограничен. Все это сделано более для того, чтобы контролировать индусов.
    Некоторая документация конечно нужна, возможно в виде диаграмм Поверпоинта, только для того чтобы посторонний мог въехать в идею архитектуры системы. Но документировать по классам?...

    Лично я пишу документацию сразу в коде, пока никто не жаловался.

  • А вам бывало стыдно, когда в результате работы иногда получался говнокод?


    TheRealAnonymous 2 час. назад
    > юнит-тест тестирует юниты (а юнит это чаще всего метод)

    Цікаво, що заважає написати тест, який тестує те, що треба, а не обов’язково лише один метод, об’єкт, чи клас?

    Цена? Заказчику важно побыстрее и подешевле. А на разработку хорошего юнит-теста, а не просто для галочки, нужно затратить больше чем на написание самого рабочего кода.

  • Список требований к C++ junior developer


    anonymous 4 мин. назад
    Тоесть разве что отбросив интегрированный менеджер кеша, графической подсистемы и безопасности, то все остальное в NT соответствует микроядру.
    А если у бабушки был бы...

    Вот когда отбросят, тогда и будет микроядерное. Пока что оно таким не является. Что Вам не понятно?

    Формально не является, но предоставляет основные преимущества микроядра. Так же как Oracle формально уже не реляционная СУБД это нечто «вещь в себе».

  • Список требований к C++ junior developer


    anonymous 1 час назад

    Я не собираюсь объяснять по 10 раз очевидные вещи. Прочитайте хотя бы на википедии что такое микроядро. Система не может быть «немножко микроядерной», как и женщина «чуть-чуть беременой».

    Берем википедию:
    Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д.
    Все это доступно и в Windows, просто драйверы работают в защищённом режиме, но загружаются и выгружаются динамически. Нигде не сказано что для микроядра «сервисам» /драйверам запрещено работать в защищённом режиме.
    И в том же микроядре:
    Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов
    * управление адресным пространством оперативной памяти.
    * управление адресным пространством виртуальной памяти.
    * управление процессами и тредами (нитями, потоками).
    * средства межпроцессной коммуникации.

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

  • Список требований к C++ junior developer


    anonymous 15 мин. назад

    Микроядерной была только 3.51я, остальные можно называть как угодно, придумывать красивые маркетоидные термины вроде «гибридная», но по факту это обыкновенный монолит, где даже графическая подсистема работает в пространстве ядра.

    Ну почему монолит? Графическая система (и то только обычный 2D GUI без 3D), менеджер памяти/кеша (именно там они там объединены и кеширование и управление памятью), io-менеджер, менеджер безопасности, планировщик — это все что монолитно и неотделимо от системы.
    Все остальное вплоть до драйвера мышки, шины USB, PCI (хотя шинные контролеры тоже очень сложно заменить на свои, но теоретически возможно), драйверов ФС и IDE подключается динамически во время загрузки и может быть отключено/перезагружено во время выполнения системы.

    Хотя из-за идиотской или наоборот продуманной MS фичи при возникновении любой необработанной ошибки в режиме ядра (например, деления на 0) система автоматически останавливается. Для этого даже специальная функция есть KeBugCheck:) Удобно это тем, что во время отладки внешним отладчиком (через VMWare с виртуальные com-портом или через реальный IEEE1394) можно сразу оттрассировать место возникновения бага.

  • Список требований к C++ junior developer


    Хз чем «лучше», но К.О намекает, что define — это простая текстовая подстановка, а шаблоны — тьюринг-полный метаязык. Поэтому мне и стало интересно, как товарисч собрался на нем в компайл-тайм факториалы вычислять, а то может я чего-то про define не знаю.
    Я тогда не совсем точно понял задачу. Дейсвительно факториал на define вычислить нельзя, так как там невозможна рукурсия. Но я бы в данном случае вместо template все таки использовал define с константой данного факториала, так как код становится более контролируемым (и в исходник включаются только испольуемые значения, а не вся развёртка рекурсивного template), например при записи константы сразу видно требуемая разрядная сетка для ёё хранения, а вот в случае в template возможны «удивления».

    Не заметил пост, поэтому отвечу сейчас. Во первых С++ я использую довольно редко только в том случае когда требуются, как и Java, как и PHP. Основной мой язык Delphi.

    Даже боюсь спросить, что Вы там в этом драйвере такого пишете. Кодогенераторы на boost: spirit?

    Да нет. Намного удобнее объект устройства обернуть в объект С++ в nonpaged pool памяти и работать по человечески. Если думать не как извратится на чистом С++, а как извлечь преимущества от использования С++ то довольно удобно. Комбинация объектного и процедурного удобнее чем просто процедурное программирование. Скорее всего там даже не С++, а «C with class».

    В 21 веке в недрах Редмонда изобрели микроядерность? Я плакалЪ.
    Может Вам лучше просветиться хоть одной нормальной книгой об ОС?
    А то еще пару сообщений и Вы оконачтельно развеете остатки «коньячного» аромата псевдоэлитизма вокруг опытных (я так понял Вы себя как такового позиционируете?) плюсатнеков.

    NT- и раньше была близка к микроядерности (точнее архитектуру NT-драйверов можно назвать плагинной, где драйвер плагин IO-менеджера) Просто раньше драйвера могли работать только в kernel-mode, а сейчас прикрутили нативный шлюз (коммерческие были и до этого WinDriver и пр...) в user-mode для некоторых драйверов.

  • Список требований к C++ junior developer


    anonymous 2 час. назад
    Если вы про константы вычисляемые во время компиляции то там используются #define с параметрами, а не template (тоесть не шаблоны, а макроподстановки).

    Внезапно. А почему Вы решили, что для этого нельзя использовать темплейты? Вообще лучше Вы приведите пример вашего #define факториала, а то мне кажется, что мы друг друга недопонимаем:)

    Если вы про этот изврат
    peter.infosreda.com/...plate_recursion

    То за такое я бы сразу увольнял с печатью в паспорт «Бу-га-га-кодер». Вот такой С++ явно никому не нужен.

  • Список требований к C++ junior developer


    anonymous 2 мин. назад
    ну не вижу причин чем template лучше обычной инлайновой функции?
    Вы таки хотите подпортить репутацию крестовикам:)

    Подумайте на досуге что значит «компайл-тайм» в моем предыдущем посте и когда будет выполнятся «инлайновая» функция.

    Если вы про константы вычисляемые во время компиляции то там используются #define с параметрами, а не template (тоесть не шаблоны, а макроподстановки). Или что именно вы хотите сказать? Можете привести пример?

  • Список требований к C++ junior developer


    anonymous 26 мин. назад
    Бакалавр IT. Прочитано: одна толстая и не плохая книга по C, книга по С++, книга по WinAPI. Практики мало. Достаточно для junior?

    Важно только то, что «выучено», а не что «прочитано». Нагугли какой-то фак по крестам, обычно вопросы задают из него (вроде «зачем нужны виртуальные деструкторы? »). Как максимум разберись как делать всякие там компайл-тайм факториалы на темлейтах, такие «вредные» вещи почему-то являются объектом поклонения и признаком немеряной крутизны у некоторых пристарелых крестодрочеров.

    Чего вы прицепились к темплейтам. Очень удобная вещь если использовать из многолетне протестированных библиотек или использовать в своём коде с частотой использования goto. С++ удобнее не темплейтами, а тем что можно, например переопределить менеджер памяти для определённого объекта на свой через переопределение операторов new delete. А факториал... ну не вижу причин чем template лучше обычной инлайновой функции?

  • Список требований к C++ junior developer

    anonymous 15 час. назад

    На счёт ядер системы не знаю, там может быть и оправдано применение чистого С, так как в ядро лезут только профи уровня сеньёра. Но драйвера с использованием С++ вместо С выглядят намного аккуратнее. Почитайте новую инициативу Microsoft которая наконец-то решила использовать С++ и объектный подход для написания драйверов KMDF и UMDF (здесь драйвер работает на пользовательском уровне (на уровне ядра прокси-драйвер) так что возможно его написание даже на C#, хоть и не рекомендуется).
    По поводу MFC соглашусь с вами — MFC дрянь. Но MFC это не С++, а одна из библиотек, на мой взгляд, неудачная (спорить не буду, но QT и WxWidgets намного удобнее и конфигурабельнее).
    По поводу саппорта, насколько я знаю, белые негры как раз саппортят идусский говнокод на Java и C#, а вот с C++ или разработка с нуля или очень глобальные доделки, так как самый тупой буржуй сейчас формачки пишет (и понимает что выгоднее их переписать) на С#, а вот библиотеки на С++.
    ЗЫ

    Хотя по поводу Delphi вы правы, оно до сих пор довольно широко используется, не смотря на все старания Borland и Codegear добить свой продукт.

  • А вам бывало стыдно, когда в результате работы иногда получался говнокод?

    Мусье слышал о юнит-тестах?

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

    Вот как вы построите юнит тест на обход определённого бага который встречается на 1% систем пользователей из-за конфликта с определённым ПО? Конечно можно сказать вот у нас есть технические требования к системе и идите гуляйте у которых их нет, но это утрата клиентов.

  • Список требований к C++ junior developer


    anonymous 2 час. назад
    Таких вакансий, как «C++ junior» сейчас мало, потому что на крестах, слава Патрику, пишут все меньше и меньше софта общего назначения. Так что это будет либо джуниор в гейм-дев, либо в эмбеде, либо в чем-то таком.
    Аналога плюсам в высоконагруженном программировании (критичном к ресурсам) или системном программировании пока нет.
    Для сайтегов/формочек, действительно, использовать С++ — идиотизм, оно там не к месту, там и PHP/.ПТУ сойдёт. C++ хорош тем что у программиста на нём, как у элитного коньяка, с годами только количество звёздочек добавляется.
    PS
    Вопрос к автору [0]: Что вы хотите получить от C++?:
    1) денег;
    2) хакерски-интересных проектов;
    3) признания как Великого Программиста;

    4) просто нравится философия С++.

  • Список требований к C++ junior developer


    Ambianx 3 час. назад
    Просьба к знающим людям сформулировать примерный список требований для C++ junior. Просьба предварительно указывать свой реальный опыт работы в IT, чтобы было понятно, от кого исходит совет.
    Для джониора в C++ — 3 года опыта написания программ на с++ или год в С++ и 5 лет в другом языке.

    У С++ -ника никогда нет проблем с работой (и оплатой) даже во время кризиса, но это один из самых сложных стартов.

    Підтримав: anonymous
  • Hide Error report

    Хотя перехват SEH не поможет если баг в CRT-библиотеке, тогда только _set_invalid_parameter_handler в коде C++ на свой хендлер обработки ошибок.

  • Hide Error report

    Ууу как у вас всё через жопу.
    Пока кроме внедрения кода remote thread в код процесса который вы запускаете (скорее всего вы имеете хендл процесса) и установки своего хендлера на перехват seh-исключений на код своей dll.
    CreateRemoteThread
    msdn.microsoft.com/...ibrary/ms682437 (VS.85).aspx
    Injecting a DLL into Another Process’s Address Space
    www.codeguru.com/...rticle.php/c105
    Хотя можно тупо для всей системы отключить Dr.Watson

    support.microsoft.com/kb/188296

  • А вам бывало стыдно, когда в результате работы иногда получался говнокод?


    TheRealAnonymous 20 час. назад
    > Доречі ще одна причина чому GNU opensource “рулить” — гавнокод вічний супутник комерції, а от проект “для душі” навіть досить значний за обсягом — який сенс розробляти не якісно?

    Дійсно, 99.99% оупенсорса — дуже якісні і повноцінні програми, якже. Комерційні конкуренти тихо кусають лікті в сторонці.

    Основное преимущество коммерческих — в удобстве для пользователей-казуалов. Вот, например, даже мне иногда приятнее настройки произвести мышкой, чем ковырять конфиги и читать документацию. А все GNU пишется для программистов (для себя), не для пользователей (клиентов). Хотя если использовать в качестве библиотек, то чаще всего даже лучше по качеству коммерческого кода

  • А вам бывало стыдно, когда в результате работы иногда получался говнокод?


    Артём Грошевой 2 час. назад

    Прочитал недавно Фаулера «Рефакторинг» и мне перестало становиться стыдно. Я просто изменяю код, пока он мне не начнёт нравится)

    Это все понятно. Здесь другое. Если заказчику все нравится, а тебе в архитектуре нет, но видно, что можно улучшить, то здесь как быть?

  • WebBrowser


    roadking 4 час. назад
    написал html редактор основываясь на компоненет WebBrowser
    всё классно, но толко вот в html все таги большими буквами
    хотя в сам редактор я загружаю html страницу, у которой все тэги написаны маленькими буквами

    Как решить порблемму?

    Если Delphi то могу дать ссылку на враппер Gecko (Firefox). Для C++ всё есть на их сайте.

    С тем же IE имел много проблем от совместимости версий до просто багов в документации MSDN. А Gecko можно таскать с собой, он небольшой, всего 7 мб.

← Сtrl 1... 259260261262263264 Ctrl →