首次面试,感觉非常怪异。先是过去玩,结果找不到地方。然后就在咖吧里面消磨时间,花了15块……我的钱啊……不过还好,有冷气,有美女(如果那个算的话),还有电插头。拿PDA看看书正好。旁边有音乐,外面看人来人往,风吹树动。真的有点偷得浮生半日闲的感觉。然后跑去吃麦当劳……那个叫出血啊,不过也没有办法,咖吧里面的快餐上手就要挨一刀,还是能省则省吧(虽然麦当劳也省不到哪里去)。

然后吃完,终于进去了。才发现刚刚我就站在门口没有敲门而已……我Ft。老板人还不错,工作有点无聊。后来来了个.net的程序员,号称在微软做的……那个.net的程序员让我感觉非常奇怪。当时问问题的时候感觉总答不上来,可是回来细想发现里面很多都有透换概念的迹象,而且还有错误。

例如问我ASM调用C的时候,压栈顺序问题,我想了半天,结果他没有没说对还是错。这个就算了。这个问题引申出来了一个栈堆增长问题,他居然告诉我栈堆是正增长的。如果栈堆真的正增长,那溢出问题怎么可能出的来?

就是CLR和.net支持多门语言的问题,的却,CLR的优点非常多。不过事实上,VS.NET支持的所有语言的却使用了.net framework,这个导致了语言传承的断链。C类语言不兼容ANSI C,VB类语言库都变了。所有使用过原始语言的人变成了新人重新训练……而且说的明白点,高级程序员学门语言的语法根本不用几分钟。如果用VB掌握了framework,那么换成C#又有多困难呢?这和完全的使用一门语言有区别吗?.net号称支持多门语言,虽然是事实,不过有意思吗?

还有那个winsock的问题就不说了,MSDN上能查到还问我。当我白痴还是背书机器啊?accpet在异步无连接的返回值可能有三种,INVAILD_HANDLE一种,特定错误一种,SEH一种。除此外还有可能(虽然不大可能)当场阻塞。此外还有啥可能?不过现在三选一,运气不大好……选择错误。应该是特定错误标志的选择成INVAILD_HANDLE用GetLastError()察看了。

那个按钮的问题到的却是我看的不够仔细,如果知道BM系列message的话应该答的上来的。不过关于SendMessage返回的问题,这么理所当然的事情还郑重其事的去问。我真是无语了。PostMessage当然没有返回值,因为是异步,对方甚至还可能处于阻塞状态,怎么返回值啊?至于使用Callback,可能不大。PostMessage本身逻辑同步问题不大的,要是Callback就要自行头痛同步问题,相信没啥人这么笨的……SendMessage的流程大约是(貌似有人和我说过,或者windows核心编程里面写过),首先如果是同进程接收的话直接调用接收函数,如果异线程先置标志,然后发出一个消息(和Post的不大一样),然后对方接收结束后返回一个消息,再开启运行。回头翻翻核心编程好了,貌似在那里的……

郁闷啊郁闷啊……