Подобный код вполне себе можно запустить и на линухе.Интеррапт wrote:Не думаю, что вы правы и что существует такое определение. Для обычной Win32 console application (с CRT) - функция _tmain будет вызванна из mainCRTStartup (конечно это поведение можно поменять при помощи linker options или при помощи #pragma comment (linker ...) ). А в mainCRTStartup и так вызывается несколько Win32 функций (GetVersion, GetStartupInfo и т.п.), прежде чем будет вызвана ваша _tmain. Так что в вашем бинарнике будут вызовы Windows функций, даже если вы не добавили свой собственный код.dmicher wrote:Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.Boriskin wrote:OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?Нормальный win32 console app.Code: Select all
int _tmain(int argc, _TCHAR* argv[]) { return 0; }
Как пройти собеседование?
-
- Уже с Приветом
- Posts: 376
- Joined: 14 May 2011 00:48
Re: Как пройти собеседование?
-
- Уже с Приветом
- Posts: 376
- Joined: 14 May 2011 00:48
Re: Как пройти собеседование?
Выше указанное определение это мое ИМХО - то есть как бы я ожидал ответ от оппонента.dmicher wrote:Подобный код вполне себе можно запустить и на линухе.Интеррапт wrote:Не думаю, что вы правы и что существует такое определение. Для обычной Win32 console application (с CRT) - функция _tmain будет вызванна из mainCRTStartup (конечно это поведение можно поменять при помощи linker options или при помощи #pragma comment (linker ...) ). А в mainCRTStartup и так вызывается несколько Win32 функций (GetVersion, GetStartupInfo и т.п.), прежде чем будет вызвана ваша _tmain. Так что в вашем бинарнике будут вызовы Windows функций, даже если вы не добавили свой собственный код.dmicher wrote:Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.Boriskin wrote:OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?Нормальный win32 console app.Code: Select all
int _tmain(int argc, _TCHAR* argv[]) { return 0; }
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
а вам сразу сказали, что плохо знаете или просто не взяли?OtherSide wrote:Написали что требуется. Все что мог ответить, это словами логику - регистрация класса - создание окна - гет-транслейт-диспатч, выход по wm_close. Как добавить кнопку на форуму вспомнить не смог.Alexandr wrote:все же интересно:
а что вы им ответили и что им не понравилось?
кста, они в вакансии указывали что WinAPI знать надо?
Тем не менее считаю, что winAPI знаю неплохо, т.к. вполне мог бы написать сейчас несложное приложение, имея под рукой хелп.
во втором варианте скорее всего просто попался кто-то где цена/качество лучше, либо банально дешевле
т.е. то, что вас не взяли, далеко не всегда говорит о том, что у вас знаний недостаточно
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
когда WM_CLOSE приходит, достаточно PostQuitMessage запулить и цикл завершится (так как WM_QUIT придет)IvanF wrote:Ну на самом деле выход можно сделать когда угодно, просто завершив WinMain, да и терминация цикла обработки сообщений обычно происходит по WM_QUIT. А WM_CLOSE это просто сообщение окна, которое может быть не связанно с выходом из приложения. Более того, даже если закрыть окно по WM_CLOSE но не прервать цикл обработки сообщений, то приложение будет дальше работать.OtherSide wrote:выход по wm_close. Как добавить кнопку на форуму вспомнить не смог.
А вот про форму не совсем понятно. Вас собеседовали как Delphi программиста?
скорее всего автора спрашивали, как кнопку создать на главном окне, просто создать окно с именем класса BUTTON и в родителе нотификацию BN_CLICK (так кажется) обрабатывать
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
значит им действительно нужен человек, который хорошо знает WinAPI и придется много писать на нем, т.е. если вы не помните как кнопки добавлять ну и другие простые вещи, то скорее всего "продвинутые" вещи тоже не помните/не знаете (у них нет способа узнать), поэтому и отсеялиOtherSide wrote:Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.IvanF wrote:Ну на самом деле выход можно сделать когда угодно, просто завершив WinMain, да и терминация цикла обработки сообщений обычно происходит по WM_QUIT. А WM_CLOSE это просто сообщение окна, которое может быть не связанно с выходом из приложения. Более того, даже если закрыть окно по WM_CLOSE но не прервать цикл обработки сообщений, то приложение будет дальше работать.OtherSide wrote:выход по wm_close. Как добавить кнопку на форуму вспомнить не смог.
А вот про форму не совсем понятно. Вас собеседовали как Delphi программиста?
А что я могу даже примерно "набросать"? В голове только общая схема осталась, Какими функциями класс окна регестрируется, в голове не держу. Рассказал на словах, но было видно, что ответ мой не понравился.
все же мне кажется ваша основная проблема в том, что вы много чем занимались, но нигде нет глубины знаний
хотя, если бы я был на вашем месте, я бы слез с С++ и пересел на какой-нть мейнфрейм C#/Java - работ больше, есть много мест, где не нужна супер-аховая квалификация, по деньгам - в среднем выше чем С++ (если вы в Мск)
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
вот тут я с вами согласенIvanF wrote:Потому что winapi С++ программист который не работал с VB, Delphi не назовет окно формой. А значит есть большие подозрения что собеседование шло на Delphi программиста со знанием winapi. Но это только предположение, поэтому я и спросил.nightmare2 wrote:Ну это же практически синонимы.
Или это тоже не совместимо с высоким званием C++ кодера.

потому что даже похожая на форму субстанция называется "диалог"

-
- Уже с Приветом
- Posts: 1494
- Joined: 08 May 2001 09:01
- Location: Silicon Valley
Re: Как пройти собеседование?
dmicher wrote:Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.Boriskin wrote:OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?Нормальный win32 console app.Code: Select all
int _tmain(int argc, _TCHAR* argv[]) { return 0; }

а какие функции она вызывает -- дело десятое.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
да нужно иногдаIvanF wrote:Может быть, но маловероятно. Использовать оконное winapi на C# незачем. Переход C#->C++ winapi тоже выглядит странно. А вот C++ winapi < -> delphi+winapi вполне может бытьnightmare2 wrote:Он с С# работал, вот оттуда нахватался.
как-то понадобилось обрабатывать WM_ERASEBKGND обрабатывать и смена цвета фона на форме не помогала (была хитрая раскраска контролов), так что пришлось заюзать NativeWindow, а там функция окна есть

+хрен в шарпе есть поддерка desktop managerа который в 7ке появился
+есть глюк WebControlа, который становится полупрозрачным хитро-покривившимся, если WPF форма включает прозразные части, тоже там пришлось с бубном поплясать
Last edited by Alexandr on 20 Mar 2012 07:30, edited 2 times in total.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
+1dB13 wrote:dmicher wrote:Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.Boriskin wrote:OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?Нормальный win32 console app.Code: Select all
int _tmain(int argc, _TCHAR* argv[]) { return 0; }
Win32 программа - это Portable Executable (PE) файл с флагом подсистемы CONSOLE или WINDOWS,
а какие функции она вызывает -- дело десятое.
в любом консольном можно создавать окна, в любом где подсистема WINDOWS можно сказать AttachConsole

Last edited by Alexandr on 20 Mar 2012 07:29, edited 1 time in total.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
-
- Уже с Приветом
- Posts: 15878
- Joined: 01 Mar 2008 15:14
- Been thanked: 1 time
Re: Как пройти собеседование?
Странная мысль, как раз именно в C#/Java нужна глубина знаний, большого числа библиотек,Alexandr wrote: все же мне кажется ваша основная проблема в том, что вы много чем занимались, но нигде нет глубины знаний
хотя, если бы я был на вашем месте, я бы слез с С++ и пересел на какой-нть мейнфрейм C#/Java - работ больше, есть много мест, где не нужна супер-аховая квалификация, по деньгам - в среднем выше чем С++ (если вы в Мск)
а понимание принципов не так важно, как в С++. Вообще же все люди разные, для вас важна
механическая зубрежка, внимание к мелочам, а стратегия не так важна.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Как пройти собеседование?
По-моему мы вам уже 20 страниц пытаемся объяснить, что нужна и стратегия, и глубина знаний, и понимание принципов. И все это независимо от языков, носов, рук, ног и всего остального. Ума не разложу, как вы посчитал кол-во библиотек в .NET/Java и C++ и учли их важность там и сям.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
очень странная мысль о том, что незнание мелочей ведет к глубокому пониманию сути,OtherSide wrote:Странная мысль, как раз именно в C#/Java нужна глубина знаний, большого числа библиотек,Alexandr wrote: все же мне кажется ваша основная проблема в том, что вы много чем занимались, но нигде нет глубины знаний
хотя, если бы я был на вашем месте, я бы слез с С++ и пересел на какой-нть мейнфрейм C#/Java - работ больше, есть много мест, где не нужна супер-аховая квалификация, по деньгам - в среднем выше чем С++ (если вы в Мск)
а понимание принципов не так важно, как в С++. Вообще же все люди разные, для вас важна
механическая зубрежка, внимание к мелочам, а стратегия не так важна.
наоборот еще странее: что знание мелочей говорит о непонимании бОльшей картины
-
- Уже с Приветом
- Posts: 15878
- Joined: 01 Mar 2008 15:14
- Been thanked: 1 time
Re: Как пройти собеседование?
Почему же странная? Я задал вам несколько простых вопросов, раскрывающие логику языка С++.Alexandr wrote: очень странная мысль о том, что незнание мелочей ведет к глубокому пониманию сути,
наоборот еще странее: что знание мелочей говорит о непонимании бОльшей картины
Например, зачем ввели в язык ссылки? Вы оказались неспособны ответить. Зато на уровне реализации понимаете.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
я просто не хотел ввязываться в еще одну ветвь дискуссии о идиологииOtherSide wrote:Почему же странная? Я задал вам несколько простых вопросов, раскрывающие логику языка С++.Alexandr wrote: очень странная мысль о том, что незнание мелочей ведет к глубокому пониманию сути,
наоборот еще странее: что знание мелочей говорит о непонимании бОльшей картины
Например, зачем ввели в язык ссылки? Вы оказались неспособны ответить. Зато на уровне реализации понимаете.

ссылки ввели просто для упрощения возможности изменения значений параметров внутри функции, а также упрощение синтаксиса, когда нужно избежать копирования
в любой книжке есть что-то типа: используйте ссылки вместо указателей, за исключением случаев когда нужно NULL позволять передавать (хотя выше я показывал, что NULL можно и по ссылке передать)
+ ввиду упрощения синтаксиса ссылок, гораздо труднее нарваться на проблемы с pointer aliasing, чем когда используются указатели