Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/build/reference/fpcvt.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: "Learn more about: /fpcvt (Floating-point to integer conversion compatibility)"
title: "/fpcvt (Floating-point to unsigned integer conversion compatibility)"
description: "Learn more about: /fpcvt (Floating-point to integer conversion compatibility)"
ms.date: 11/03/2021
f1_keywords: ["/fpcvt", "-fpcvt"]
helpviewer_keywords: ["-fpcvt compiler option [C++]", "/fpcvt compiler option [C++]"]
Expand Down Expand Up @@ -40,7 +40,7 @@ The **`/fpcvt`** options are new in Visual Studio 2019 version 16.8. If you spec

### Intrinsic functions for conversions

You can specify the behavior of a specific conversion independently of the **`/fpcvt `** option, which applies globally. The compiler provides intrinsic sentinel conversion functions for conversions compatible with **`/fpcvt:IA`**. For more information, see [Sentinel conversion functions](../../intrinsics/sentinel-conversion-functions.md). The compiler also provides saturation conversion functions compatible with conversions on ARM or ARM64 target architectures. For more information, see [Saturation conversion functions](../../intrinsics/saturation-conversion-functions.md).
You can specify the behavior of a specific conversion independently of the **`/fpcvt`** option, which applies globally. The compiler provides intrinsic sentinel conversion functions for conversions compatible with **`/fpcvt:IA`**. For more information, see [Sentinel conversion functions](../../intrinsics/sentinel-conversion-functions.md). The compiler also provides saturation conversion functions compatible with conversions on ARM or ARM64 target architectures. For more information, see [Saturation conversion functions](../../intrinsics/saturation-conversion-functions.md).

The compiler also supports intrinsic conversion functions that execute as quickly as possible for valid conversions. These functions may generate any value or throw an exception for an invalid conversion. The results depend on the target platform, compiler options, and context. They're useful for handling values that have already been range-checked, or values generated in a way that can't cause an invalid conversion. For more information, see [Fast conversion functions](../../intrinsics/fast-conversion-functions.md).

Expand Down
10 changes: 5 additions & 5 deletions docs/build/reference/ln-create-msil-module.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: "Learn more about: /LN (Create MSIL Module)"
title: "/LN (Create MSIL Module)"
ms.date: "11/04/2016"
description: "Learn more about: /LN (Create MSIL Module)"
ms.date: 11/04/2016
f1_keywords: ["/LN"]
helpviewer_keywords: ["-LN compiler option [C++]", "/LN compiler option [C++]"]
---
Expand All @@ -21,15 +21,15 @@ By default, `/LN` isn't in effect, and the compiler inserts an assembly manifest

When you use `/LN`, you must also use one of the [/clr (Common Language Runtime Compilation)](clr-common-language-runtime-compilation.md) options.

A managed program that doesn't have assembly metadata in the manifest is called a module. If you compile with [/c (Compile Without Linking)](c-compile-without-linking.md) and `/LN`, specify [`/NOASSEMBLY `(Create a MSIL Module)](noassembly-create-a-msil-module.md) in the linker phase to create the output file.
A managed program that doesn't have assembly metadata in the manifest is called a module. If you compile with [/c (Compile Without Linking)](c-compile-without-linking.md) and `/LN`, specify [`/NOASSEMBLY` (Create a MSIL Module)](noassembly-create-a-msil-module.md) in the linker phase to create the output file.

Create modules if you want to take a component-based approach to building assemblies. You can author types and compile them into modules. Then, you can generate an assembly from one or more modules. For more information on creating assemblies from modules, see [`.netmodule` Files as Linker Input](netmodule-files-as-linker-input.md) or [`Al.exe `(Assembly Linker)](/dotnet/framework/tools/al-exe-assembly-linker).
Create modules if you want to take a component-based approach to building assemblies. You can author types and compile them into modules. Then, you can generate an assembly from one or more modules. For more information on creating assemblies from modules, see [`.netmodule` Files as Linker Input](netmodule-files-as-linker-input.md) or [`Al.exe` (Assembly Linker)](/dotnet/framework/tools/al-exe-assembly-linker).

The default file extension for a module is `.netmodule`.

In releases before Visual Studio 2005, you created a module with `/clr:noAssembly`.

The MSVC linker accepts `.netmodule` files as input. The output file produced by the linker is an assembly or `.netmodule` with no run-time dependence on any of the `.netmodule`s that you input to the linker. For more information, see [`.netmodule `Files as Linker Input](netmodule-files-as-linker-input.md).
The MSVC linker accepts `.netmodule` files as input. The output file produced by the linker is an assembly or `.netmodule` with no run-time dependence on any of the `.netmodule`s that you input to the linker. For more information, see [`.netmodule` Files as Linker Input](netmodule-files-as-linker-input.md).

### To set this compiler option in the Visual Studio development environment

Expand Down
7 changes: 3 additions & 4 deletions docs/build/reference/midl-property-pages.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: MIDL Property Pages"
title: "MIDL Compiler Property Pages"
ms.date: "07/24/2019"
description: "Learn more about: MIDL Property Pages"
ms.date: 07/24/2019
ms.topic: "article"
ms.assetid: 57498a01-fccc-4a0e-a036-6ff702f83126
f1_keywords:
- VC.Project.VCMidlTool.PreprocessorDefinitions
- VC.Project.VCMidlTool.AdditionalIncludeDirectories
Expand Down Expand Up @@ -123,7 +122,7 @@ Specifies which environment to target ([/env](/windows/win32/midl/-env) arm32|wi

### Generate Stubless Proxies

Generate fully interpreted stubs with extensions and stubless proxies for object interfaces ([/Oicf](/windows/win32/midl/-oi), [/Oif](/windows/win32/midl/-oi) ).
Generate fully interpreted stubs with extensions and stubless proxies for object interfaces ([/Oicf](/windows/win32/midl/-oi), [/Oif](/windows/win32/midl/-oi)).

### Suppress Compiler Warnings

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
description: "Learn more about: /PGD (Specify Database for Profile-Guided Optimizations)"
title: "/PGD (Specify Database for Profile-Guided Optimizations)"
description: "Learn more about: /PGD (Specify Database for Profile-Guided Optimizations)"
ms.date: 03/24/2025
f1_keywords: ["VC.Project.VCLinkerTool.ProfileGuidedDatabase"]
helpviewer_keywords: ["-PGD linker option", "/PGD linker option"]
---
# /PGD (Specify Database for Profile-Guided Optimizations)

**The /PGD option is deprecated.** Starting in Visual Studio 2015, prefer the [`/GENPROFILE`or `/FASTGENPROFILE`](genprofile-fastgenprofile-generate-profiling-instrumented-build.md) linker options instead. This option is used to specify the name of the .pgd file used by the profile-guided optimization process.
**The /PGD option is deprecated.** Starting in Visual Studio 2015, prefer the [`/GENPROFILE` or `/FASTGENPROFILE`](genprofile-fastgenprofile-generate-profiling-instrumented-build.md) linker options instead. This option is used to specify the name of the .pgd file used by the profile-guided optimization process.

## Syntax

Expand Down
7 changes: 3 additions & 4 deletions docs/error-messages/tool-errors/linker-tools-error-lnk2022.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
description: "Learn more about: Linker Tools Error LNK2022"
title: "Linker Tools Error LNK2022"
ms.date: "11/04/2016"
description: "Learn more about: Linker Tools Error LNK2022"
ms.date: 11/04/2016
f1_keywords: ["LNK2022"]
helpviewer_keywords: ["LNK2022"]
ms.assetid: d2128c73-dde3-4b8e-a9b2-0a153acefb3b
---
# Linker Tools Error LNK2022

Expand All @@ -16,7 +15,7 @@ One way to diagnose this problem is to run **ildasm -tokens** on the object file

One reason for LNK2022 is when a type (such as a struct) exists in multiple compilands with the same name, but with conflicting definitions, and when you compile with [/clr](../../build/reference/clr-common-language-runtime-compilation.md). In this case, make sure that the type has an identical definition in all compilands. The type name is listed in `error_message`.

Another possible cause for LNK2022 is when the linker finds a metadata file in a different location than was specified to the compiler (with [#using](../../preprocessor/hash-using-directive-cpp.md) ). Make sure that the metadata file (.dll or .netmodule) is in the same location when passed to the linker, as it was when it was passed to the compiler.
Another possible cause for LNK2022 is when the linker finds a metadata file in a different location than was specified to the compiler (with [#using](../../preprocessor/hash-using-directive-cpp.md)). Make sure that the metadata file (.dll or .netmodule) is in the same location when passed to the linker, as it was when it was passed to the compiler.

When building an ATL application, the use of the macro `_ATL_MIXED` is required in all compilands, if it is used in at least one.

Expand Down