我是一个.Net开发者,但是我有一种情况,我不能保证.Net Framework将被安装在目标机器上。
我已经看到了一些问题( 这里和这里 ),build议使用NGen编译为本地代码。 两者都指出你仍然需要这个框架。
我想写一个相当轻量级的应用程序(基本的GUI,没有数据库,没有什么复杂的),但由于各种原因,我不想安装任何框架或字节码解释器。
这个问题build议Python和py2exe。 我不熟悉Python,但如果它是最好的工具,我可以学习写这个程序(我不想这样做)。 我也想过写在DHTML和JavaScript中 – 我可以依靠机器有一个相对较新的浏览器。
Windows服务 – 封装现有function
Powershell:pipe道input到通过调用运算符执行的命令
有没有办法检索设备的DPI而不使用GDI + / WinForms“graphics”类?
CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedDayNames问题
.NET / WinForms:在特定的屏幕上最大化一个窗口
我熟悉C语言家族,并且涉足Java,PHP和Ruby。
任何人都可以提出一种我可以很容易地编译为原生Win32代码的语言?
编辑:澄清
有几个答案表明,如果我熟悉C语言家族,为什么不使用C? 我应该澄清。 我每天都使用C#,而且我被带到了C + +和C ++(但是也没有使用过几年)。
它看起来像C / C ++可能是要走的路,但我将不得不刷新我的记忆:)
如何禁用.NET Frameworkexception处理并使用我自己的呢?
创buildXML文件,赋予所有Windows帐户用户以写权限
如果它是轻量级的,没有什么复杂的,而且你熟悉C语言家族,那么为什么不使用C和Win32 API呢? 这比编写.net或java程序难,当然,但它肯定会编译到本机windows代码,并不需要字节码或解释器。
此外,您可能可以使用Mono静态链接一个C#应用程序与Mono运行时。 http://www.mono-project.com/Guide:Running_Mono_Applications
我看你需要刷上C ..还有另外一个想法,那就是: Delphi 。
在这个线程中还有更多的答案
我会用Qt来试用C ++ …我认为这是一个非常重要的学习框架,考虑到它只是变成了LGPL。
如果你愿意考虑一个可以完全包含在你的安装中的字节码解释器(你提到的python解决方案将会这样做),那么你可以考虑使用Lua和srlua之类的东西将你的脚本和解释器捆绑成一个。可执行程序。 为了得到一个快速的图形用户界面, IUP是一个不错的选择,但也有其他GUI框架的绑定。
如果问题更多的是没有大量系统依赖性的干净安装,而不是尝试获取没有DLL的单个EXE,那么可以考虑使用Lua,而不用打扰srlua来打包它。 它不需要以任何神奇的方式进行安装,并且可以与您的脚本以及DLL或脚本形式中的所有必需模块一起存放在单个文件夹中。
将C可调用函数绑定到Lua内核是很容易的,因为作者从一开始就将其设计为嵌入到更大的应用程序中。 例如,它只需要几行样板就可以创建一个用C编写的分布在DLL中的Lua可调用模块。
一个简单的方法来开始与Lua以及一整套有用的模块是Lua for Windows项目,它为Lua维护一个“包含电池”的安装工具包。
帕斯卡尔/德尔福可能?
其实,如果你想要兼容性,没有什么比不使用MFC的Win32应用程序更好。 不知道如果STL不是由VS安装一些额外的DLL。
另一方面,我记得在安装时看到类似VC ++ redistributable的消息,不确定是否引用了MFC甚至核心库。 最好不要使用MFC。
你可以使用WTL的GUI,它会编译到你的可执行文件。
Windows API本身在C.
如果C不够轻便,那么可以考虑使用C ++ / MFC来编写简单的GUI程序,而编写代码最少。
NGen旨在通过编译为本地代码来优化.NET代码。 你仍然需要.NET框架。 另外,NGen在客户端机器上的安装程序中运行 – 您不能分发本机代码。
创建.NET安装程序项目,该项目将检查框架并自动安装。
不知道你要写什么样的应用程序,有点难以明确地说…但MFC(如果你知道的话)或简单的C / C ++和Win32 API将是一个合理的选择,基于您提供的信息。
当然,MFC有点过时了,但是随之而来的是大量的应用程序,除了它的瑕疵之外,它在许多方面都“起作用”。 如果你能得到一个Visual C ++ 6.x的副本,那么有很多的向导/等等,它们可以帮助你快速地获得一个应用程序。 这就是说,我绝对不会建议学习MFC只是为了这个目的。
对我来说它的powerbasic(www.powerbasic.com)。 它编译本机的exe(真正的,而不是嵌入编译的字节码)。 语法就像旧的pds或快速的基础(但更进一步)。 它允许在线汇编,面向对象的类(可选,你也可以做程序代码)。 如果你有c的背景,然后坚持下去。 如果你喜欢basicy语言,那么pb是一个不费吹灰之力。 它像c字符串一样。 除此之外,如果你喜欢pascal,delphi的编译器可以生成本地exes。
-don
沿着C / C ++的路线,你可以看看D编程语言 。 它在默认情况下获得了D的绝大部分优点,包括本地二进制文件,但在功能部门更接近于C#或Java。 不幸的是,在这些工具中,在较小的程度上,libs域名可悲的是缺乏(尽管这种变化速度相当快)。
C ++或VB6将为您工作。 看看VB6。 学习起来相当容易,而且使用GUI很容易。
我喜欢C ++ Builder。 .NET框架是由Borland的可视化组件库中的一些人设计的,所以如果你走这条路线,那对你来说似乎是非常熟悉的。
另一种方法是粘贴w / .Net并使用.Net连接器(如Salamander .NET Linker或Thinstall),这样您就不必担心客户机上的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。