Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
降低建筑尺寸 当我在VS2013中使用C++运行库时,有没有办法降低我的构建大小?p>_C++_Runtime - Fatal编程技术网

降低建筑尺寸 当我在VS2013中使用C++运行库时,有没有办法降低我的构建大小?p>

降低建筑尺寸 当我在VS2013中使用C++运行库时,有没有办法降低我的构建大小?p>,c++,runtime,C++,Runtime,我的原始文件只有15kb,但我无法在我的其他计算机上运行它,而不会弹出丢失的.dll消息。我决定使用静态链接,现在大小约为100kb 我正在使用Windows.h头和WinAPI函数 由于您的主要目的是控制大小,dll是一个不错的选择 就您丢失的dll而言,它是可以解决的。 若您使用的是标准库缺失错误,那个么最好在运行应用程序的机器上安装可再发行库 如果只显示MessageBox,则不需要链接到任何静态库 #include <windows.h> void entry(void)

我的原始文件只有15kb,但我无法在我的其他计算机上运行它,而不会弹出丢失的.dll消息。我决定使用静态链接,现在大小约为100kb


我正在使用
Windows.h
头和WinAPI函数

由于您的主要目的是控制大小,
dll
是一个不错的选择

就您丢失的dll而言,它是可以解决的。 若您使用的是标准库缺失错误,那个么最好在运行应用程序的机器上安装可再发行库


如果只显示MessageBox,则不需要链接到任何静态库

#include <windows.h>

void entry(void) {    
    MessageBox(NULL, "Hello, World!", "", MB_OK);
    ExitProcess(0);
}
#包括
无效记项{
MessageBox(空,“你好,世界!”,“”,MB_OK);
退出过程(0);
}
使用VC++2013,使用以下命令行编译和链接:

cl/O1/GS-hello32.c/link/nodefaultlib/entry:entry/subsystem:windows user32.lib kernel32.lib


至少对我来说(使用VC++2013),它可以生成2560字节的可执行文件(这只依赖于核心Windows DLL,因此即使在最基本的系统上运行也不需要任何额外的东西)。

如果不使用MFC等,您可以

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>  
#定义WIN32_LEAN_和_MEAN
#包括

要减小代码的大小

是windows中缺少的dll还是您自己缺少的dll?它可能会变小,但在没有看到源代码的情况下很难猜测细节。@JerryCoffin这是一个简单的消息框,上面写着“Hello World”.@Digital_Reality这是Windows中缺少的dll。您可以使用以下适当的软件包在另一台计算机上安装dll运行时:另外,100KB并不是那么大。我想省去人们在运行我的程序时下载dll的麻烦。静态链接是否只链接必要的库或所有东西?我不认为这会减少代码大小-这是一种旧的、现在基本上没有意义的减少编译时间的方法: