Browsing Tag 'Windows'

从 Windows 7 开始吧

Windows 7,用了一段时间,感觉很好,如果你有2G内存,那建议还是升级吧,有钱正版,没钱MSDN 7600 18165加个那个什么神key,电话激活一下,甭提有多清爽。 使用Windows 7考虑的最多的还是其兼容性问题,先前我也曾因此而一而再再而三的推迟升级,主要是考虑VS8在其下的安装使用情况,不过在经过一段时间的体验后,发现,嗯,没问题,常用的软件没问题,小众的软件也基本无恙,Xp上能运行的,Windows 7中几乎都可以正常使用。至于那些很久没有更新的,已被作者遗弃的,懂行的小小改动下文件,大多也都能使用,当然了,至于那特变态的,咱们还是另寻其他类似的软件吧,大千世界,无独有偶嘛,没必要抱残守缺。

Read more...

最近在在把一些程序从VC6迁移到VS2008,由此而关注到了Winodws版本的定义问题。 关于版本定义的关键无外乎为程序头文件中对于#define WINVER 和 #define _WIN32_WINNT 的使用,具体为: #define WINVER 0xXXXX #define _WIN32_WINNT 0xXXXX 该定义一般用于标示程序对运行环境的要求,另外在某些头文件中也有这样的宏定义。如果版本匹配的话就会在编译的时候将这些内容编译,否则就不编译。 定义正确的Windows版本,不仅关系到程序的正确编译,同时也关系到程序的正确运行;在升级的过程中,我就碰到了程序编译正确但运行出错的问题。实例稍候再续。 版本的定义关系到被编译到程序中的内容,这里主要是指系统提供的功能代码。Windows各个版本的功能虽然大差不差,但特定于某个系统功能还是存在的,于是关系到这些功能的API代码也就有所不一样。当我们在程序中定义了错误的系统版本,被编译进程序的内容便可能包含当前系统不支持的代码片段,这样的程序即使可能正确编译通过,但在运行的时候,由于在当前系统中找不到相应的内容资源,从而发生错误。这一点熟悉动态链接库(DLL)的人都很清楚,其实该问题就是和系统动态链接库有关。 Example: 下面为一段获取系统信息提示框的字体信息的代码片段:(编译环境从VC6迁移至VS2008,运行系统为Windows XP) // Retrieves the message font info NONCLIENTMETRICS ncm; ncm.cbSize = sizeof(NONCLIENTMETRICS); VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0));   // Creates the font according to the message font info m_Font.CreateFontIndirect(&(ncm.lfMessageFont)); 程序在VC6下编译运行都正确,迁移至VS2008后,编译正确,但运行时出错。原因是SystemParametersInfo调用失败,这和其传入的参数有关,根本在于 NONCLIENTMETRICS 这个结构体变量的定义。

Read more...

  以下这部视频是微软在出席2003年PDC会议上,展示其下一代操作系统Longhorn(也就是目前正在开发的Windows Vista,Longhorn是它的开发代码)时的情景,从视频可看到当时预定的许多炫耀的功能,不知在目前的Vista是否还能找到它们的身影。[Via:Downloadsquad]

Read more...

Flickr Photostream