Windows编程,没有可再发行组件

时间:2009-12-22 10:41:00

标签: windows programming-languages redistributable

这可能是一个愚蠢的问题,但我尝试谷歌这一切都失败了。问题是:如何开发不需要预先安装可再发行的Windows应用程序?我想创建在旧版Windows下运行的应用程序,这些应用程序没有.NET Framework或类似的东西。

谢谢你,eWolf

5 个答案:

答案 0 :(得分:7)

首先,用母语编写,例如C ++,没有CLR。

其次,禁用清单并避免链接外部DLL(例如STDC或MFC)。

答案 1 :(得分:4)

Windows的旧版本是什么意思?
自Windows 2003和.net 1.1以来,.net Framework是Windows的一部分 因此,如果您的目标是比Windows 2003更新的Windows版本,则可以确定.net可用。

还有{.3}} .net产品的解决方案,因此您无需发送任何可再发行组件等。

<强>更新
我刚刚发现automate linking/packaging允许您将整个运行时链接到您的可执行文件中 他们将该功能称为 Bundle 详细了解Mono

答案 2 :(得分:3)

使用Delphi - 尽管较新版本的IDE存在一些奇怪的错误,但很容易创建不需要可再发行的本机Windows应用程序。比C ++ / win32更容易使用。

答案 3 :(得分:2)

编辑:正如eWolf指出他不需要.NET,尽管最初的问题被标记为.NET。

<击> 简而言之,某些较旧的机器(如Win95 / 98/2000)可能没有安装运行时。既然你指定了.NET,我假设你想用.NET构建一个应用程序,那里有一个很大但是,你需要预先安装.NET运行时才能执行.NET应用程序。你可以通过两种方法轻松解决这个问题:

    <击>
  • 手动安装.NET运行时或
  • 使用可以检测是否安装了.NET运行时的自定义安装程序脚本来安装.NET运行时可再发行组件。

如果您正在谈论C / C ++等本机应用程序,那么最好的路径(避免依赖并最小化所需的DLL数量)是在原始WinAPI32中开发它,只使用很多标准的DLL Windows机器将有,COMMCTRL.DLL,USER32.DLL,ADVAPI.DLL等名称。最终结果将是一个较小的可执行文件。当然,你可以通过静态链接DLL来捆绑其他DLL,形成一个巨大的庞大可执行文件。

答案 4 :(得分:1)

我建议你使用WTL,这是一个轻量级的C ++框架。它实际上只比Win32 API高出一步,因此您可以获得具有很少依赖性的小型EXE。 WTL需要您可以静态链接到的ATL框架,这意味着您只需要发送EXE。

另一个值得关注的框架是Qt。但是,这确实需要您在应用程序中运送一些DLL。 Qt是一个很棒的框架,我认为你会发现它比WTL更有效率(当然,取决于你的应用程序需求。)