使用VC++ IDE开发的纯Win32原生应用是否需要Visual C++ Redistributables?
Great question—this boils down entirely to how you configure your project's C Runtime (CRT) linking option when building:
Dynamic Linking (
/MDor/MDdfor debug)
If you use the dynamic CRT runtime, your executable will depend on the Visual C++ Redistributable packages. Even if your project only calls raw Win32 APIs, the compiler still injects CRT initialization/cleanup code (for things like memory management, standard library helpers, etc.) that relies on separate DLLs (e.g.,msvcr80.dllfor VS2005,msvcr120.dllfor VS2013). You’ll need the matching Redistributable installed on the target machine for your app to run.Static Linking (
/MTor/MTdfor debug)
If you opt for static linking, the entire CRT codebase gets compiled directly into your executable. This makes your app completely self-contained—no need for Visual C++ Redistributables at all. The only dependencies will be core Windows system DLLs likekernel32.dlloruser32.dll, which are pre-installed on every functioning Windows machine.
A quick clarification: Core Win32 API DLLs are part of the Windows OS itself, so you never have to redistribute those—they’re always present on target systems.
内容的提问来源于stack exchange,提问作者Luuoog Tran

