什么是台式机小部件(占地面积小,图形漂亮)的最佳选择?

时间:2020-03-05 18:57:44  来源:igfitidea点击:

如果我想创建一个外观漂亮的小部件以使其在后台运行且内存占用很小,那么我将在哪里开始构建Windows应用程序。目的是使更新的项目列表脱离Web服务。类似于RSS阅读器。

注意:数据层将通过REST(我已经拥有一个Cdll)进行连接,我认为这不会对占用空间产生太大影响。

显然,我想使用一个不错的WPF项目,但是〜60,000k的初始大小太大。

  • CForms应用程序约为20,000k

  • C ++形式〜16,000k

  • CLR或者MFC小得多,小于5

有没有办法删除WPF或者窗体?如果我使用CLR或者MFC卡住了,那么最简单的方法就是使其美观。 (我在MFC方面的经验使我获得了很多奖励表)

更新:澄清上面的大小是运行进程时正在使用的内存,而不是可执行文件。

解决方案

回答

如果我们打算使用" Cdll",则目标计算机上必须已经安装了.net。

在这种情况下,Cwin表单应用程序的位置不必在20兆附近。最小的Hello World类型的获胜形式为7 KB。

回答

如果确实必须尽可能地小,请使用纯C并直接与Windows API对话。

但是,由于由于.NET dll无论如何都要加载CLR,因此我会选择较不麻烦的方法,并且也将C用于UI。

回答

回覆:

Update: Clarification The above sizes,
  are the memory being used as the
  process is ran,  not the executable.

好的,当我们运行一个微型CWin Forms应用程序时,为其保留的最小内存量约为2兆字节,也许是4兆字节。这只是它创建的工作集。它没有积极地使用所有这些内存或者类似的内存。它只是预留了很大的空间,因此不必稍后再根据需要进行长/慢/昂贵的请求以获取更多的内存。

预先预留较小的大小可能是错误的优化。

(如果确实很重要,我们可以通过pinvoke调用来减少工作集。请参阅pinvoke以获取"设置过程工作集大小")

回答

为什么不使用Silverlight?这是一篇有关这样做的文章。