Skip to content

Commit 8480f16

Browse files
authored
Merge pull request #1472 from MicrosoftDocs/master
10/12 AM Publish
2 parents 7098d64 + 9d66b15 commit 8480f16

File tree

140 files changed

+445
-399
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+445
-399
lines changed

docs/assembler/inline/asm.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
title: "__asm | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "08/30/2018"
4+
ms.date: "10/09/2018"
55
ms.technology: ["cpp-masm"]
66
ms.topic: "conceptual"
7-
f1_keywords: ["__asm", "__asm_cpp"]
7+
f1_keywords: ["__asm", "_asm", "__asm_cpp"]
88
dev_langs: ["C++"]
99
helpviewer_keywords: ["__asm keyword [C++], vs. asm blocks", "__asm keyword [C++]"]
1010
ms.assetid: 77ff3bc9-a492-4b5e-85e1-fa4e414e79cd
@@ -47,6 +47,8 @@ did not cause native code to be generated when compiled with **/clr**; the compi
4747

4848
`__asm int 3` now results in native code generation for the function. If you want a function to cause a break point in your code and if you want that function compiled to MSIL, use [__debugbreak](../../intrinsics/debugbreak.md).
4949

50+
For compatibility with previous versions, **_asm** is a synonym for **__asm** unless compiler option [/Za \(Disable language extensions)](../../build/reference/za-ze-disable-language-extensions.md) is specified.
51+
5052
## Example
5153

5254
The following code fragment is a simple `__asm` block enclosed in braces:

docs/build/calling-dll-functions-from-visual-basic-applications.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ For Visual Basic applications (or applications in other languages such as Pascal
1717

1818
`__stdcall` creates the correct calling convention for the function (the called function cleans up the stack and parameters are passed from right to left) but decorates the function name differently. So, when **__declspec(dllexport)** is used on an exported function in a DLL, the decorated name is exported.
1919

20-
The `__stdcall` name decoration prefixes the symbol name with an underscore (_) and appends the symbol with an at sign (**\@**) character followed by the number of bytes in the argument list (the required stack space). As a result, the function when declared as:
20+
The `__stdcall` name decoration prefixes the symbol name with an underscore ( **\_** ) and appends the symbol with an at sign (**\@**) character followed by the number of bytes in the argument list (the required stack space). As a result, the function when declared as:
2121

2222
```C
2323
int __stdcall func (int a, double b)
@@ -29,7 +29,7 @@ The C calling convention (`__cdecl`) decorates the name as `_func`.
2929
3030
To get the decorated name, use [/MAP](../build/reference/map-generate-mapfile.md). Use of **__declspec(dllexport)** does the following:
3131
32-
- If the function is exported with the C calling convention (**_cdecl**), it strips the leading underscore (_) when the name is exported.
32+
- If the function is exported with the C calling convention (`__cdecl`), it strips the leading underscore ( **\_** ) when the name is exported.
3333
3434
- If the function being exported does not use the C calling convention (for example, `__stdcall`), it exports the decorated name.
3535

docs/build/how-to-use-build-events-in-msbuild-projects.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ A build event is a command that MSBuild performs at a particular stage in the bu
1818

1919
Each of the three build events is represented in an item definition group by a command element (`<Command>`) that is executed and a message element (`<Message>`) that is displayed when **MSBuild** performs the build event. Each element is optional, and if you specify the same element multiple times, the last occurrence takes precedence.
2020

21-
An optional *use-in-build* element (`<`*build-event*`UseInBuild>`) can be specified in a property group to indicate whether the build event is executed. The value of the content of a *use-in-build* element is either `true` or `false`. By default, a build event is executed unless its corresponding *use-in-build* element is set to `false`.
21+
An optional *use-in-build* element (`<`*build-event*`UseInBuild>`) can be specified in a property group to indicate whether the build event is executed. The value of the content of a *use-in-build* element is either **true** or **false**. By default, a build event is executed unless its corresponding *use-in-build* element is set to `false`.
2222

2323
The following table lists each build event XML element:
2424

docs/build/msbuild-visual-cpp-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ For example, set the `PreferredToolArchitecture` property to `x64` to use the 64
106106

107107
### UseEnv Property
108108

109-
By default, the platform-specific settings for the current project override the PATH, INCLUDE, LIB, LIBPATH, CONFIGURATION, and PLATFORM environment variables. Set the `UseEnv` property to `true` to guarantee that the environment variables are not overridden.
109+
By default, the platform-specific settings for the current project override the PATH, INCLUDE, LIB, LIBPATH, CONFIGURATION, and PLATFORM environment variables. Set the `UseEnv` property to **true** to guarantee that the environment variables are not overridden.
110110

111111
`msbuild myProject.vcxproj /p:UseEnv=true`
112112

docs/build/reference/gh-enable-penter-hook-function.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The `_penter` function is not part of any library and it is up to you to provide
2929
Unless you plan to explicitly call `_penter`, you do not need to provide a prototype. The function must appear as if it had the following prototype, and it must push the content of all registers on entry and pop the unchanged content on exit:
3030

3131
```
32-
void __declspec(naked) _cdecl _penter( void );
32+
void __declspec(naked) __cdecl _penter( void );
3333
```
3434

3535
This declaration is not available for 64-bit projects.
@@ -52,7 +52,7 @@ This declaration is not available for 64-bit projects.
5252

5353
The following code, when compiled with **/Gh**, shows how `_penter` is called twice; once when entering function `main` and once when entering function `x`.
5454

55-
```
55+
```cpp
5656
// Gh_compiler_option.cpp
5757
// compile with: /Gh
5858
// processor: x86
@@ -63,7 +63,7 @@ int main() {
6363
x();
6464
}
6565

66-
extern "C" void __declspec(naked) _cdecl _penter( void ) {
66+
extern "C" void __declspec(naked) __cdecl _penter( void ) {
6767
_asm {
6868
push eax
6969
push ebx

docs/build/reference/gh-enable-pexit-hook-function.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The `_pexit` function is not part of any library and it is up to you to provide
2929
Unless you plan to explicitly call `_pexit`, you do not need to provide a prototype. The function must appear as if it had the following prototype, and it must push the content of all registers on entry and pop the unchanged content on exit:
3030

3131
```
32-
void __declspec(naked) _cdecl _pexit( void );
32+
void __declspec(naked) __cdecl _pexit( void );
3333
```
3434

3535
`_pexit` is similar to `_penter`; see [/Gh (Enable _penter Hook Function)](../../build/reference/gh-enable-penter-hook-function.md) for an example of how to write a `_pexit` function.

docs/build/reference/manifestuac-embeds-uac-information-in-manifest.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ A string that contains the `level` and `uiAccess` values. For more information,
3535
One of *asInvoker*, *highestAvailable*, or *requireAdministrator*. Defaults to asInvoker. For more information, see the Remarks section later in this topic.
3636

3737
*_uiAccess*<br/>
38-
`true` if you want the application to bypass user interface protection levels and drive input to higher-permission windows on the desktop; otherwise, `false`. Defaults to `false`. Set to `true` only for user interface accessibility applications.
38+
**true** if you want the application to bypass user interface protection levels and drive input to higher-permission windows on the desktop; otherwise, **false**. Defaults to **false**. Set to **true** only for user interface accessibility applications.
3939

4040
## Remarks
4141

docs/build/reference/optimization-pragmas-and-keywords.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Several keywords and pragmas that you use in your C or C++ code affect optimizat
1919

2020
- [__assume](../../intrinsics/assume.md)
2121

22-
- [inline, _inline, or \__forceinline](../../cpp/inline-functions-cpp.md)
22+
- [inline, __inline, or \__forceinline](../../cpp/inline-functions-cpp.md)
2323

2424
- [#pragma auto_inline](../../preprocessor/auto-inline.md)
2525

docs/build/reference/winmd-generate-windows-metadata.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,9 @@ ms.workload: ["cplusplus"]
1515

1616
Enables generation of a Windows Runtime Metadata (.winmd) file.
1717

18-
```
19-
/WINMD[:{NO|ONLY}]
20-
```
18+
> **/WINMD**\[**:**{**NO**\|**ONLY**}]
2119
22-
## Remarks
20+
## Arguments
2321

2422
**/WINMD**<br/>
2523
The default setting for Universal Windows Platform apps. The linker generates both the binary executable file and the .winmd metadata file.
@@ -30,19 +28,27 @@ The linker generates only the binary executable file, but not a .winmd file.
3028
**/WINMD:ONLY**<br/>
3129
The linker generates only the .winmd file, but not the binary executable file.
3230

33-
By default, the output file name has the form `binaryname`.winmd. To specify a different file name, use the [/WINMDFILE](../../build/reference/winmdfile-specify-winmd-file.md) option.
31+
## Remarks
32+
33+
The **/WINMD** linker option is used for UWP apps and Windows runtime components to control the creation of a Windows Runtime metadata (.winmd) file. A .winmd file is a kind of DLL that contains metadata for Windows runtime types and, in the case of runtime components, the implementations of those types. The metadata follows the [ECMA-335](http://www.ecma-international.org/publications/standards/Ecma-335.htm) standard.
34+
35+
By default, the output file name has the form *binaryname*.winmd. To specify a different file name, use the [/WINMDFILE](../../build/reference/winmdfile-specify-winmd-file.md) option.
3436

3537
### To set this linker option in the Visual Studio development environment
3638

3739
1. Open the project's **Property Pages** dialog box. For details, see [Working with Project Properties](../../ide/working-with-project-properties.md).
3840

39-
1. Select the **Linker** folder.
40-
41-
1. Select the **Windows Metadata** property page.
41+
1. Select the **Configuration Properties** > **Linker** > **Windows Metadata** property page.
4242

4343
1. In the **Generate Windows Metadata** drop-down list box, select the option you want.
4444

4545
## See Also
4646

47+
[Walkthrough: Creating a Simple Windows Runtime component and calling it from JavaScript](/windows/uwp/winrt-components/walkthrough-creating-a-simple-windows-runtime-component-and-calling-it-from-javascript)<br/>
48+
[Introduction to Microsoft Interface Definition Language 3.0](/uwp/midl-3/intro)<br/>
49+
[/WINMDFILE (Specify winmd File)](winmdfile-specify-winmd-file.md)<br/>
50+
[/WINMDKEYFILE (Specify winmd Key File)](winmdkeyfile-specify-winmd-key-file.md)<br/>
51+
[/WINMDKEYCONTAINER (Specify Key Container)](winmdkeycontainer-specify-key-container.md)<br/>
52+
[/WINMDDELAYSIGN (Partially Sign a winmd)](winmddelaysign-partially-sign-a-winmd.md)<br/>
4753
[Setting Linker Options](../../build/reference/setting-linker-options.md)<br/>
48-
[Linker Options](../../build/reference/linker-options.md)
54+
[Linker Options](../../build/reference/linker-options.md)

docs/c-language/c-keywords.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "C Keywords | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "11/04/2016"
4+
ms.date: "10/09/2018"
55
ms.technology: ["cpp-language"]
66
ms.topic: "language-reference"
77
dev_langs: ["C++"]
@@ -36,17 +36,19 @@ The following keywords and special identifiers are recognized by the Microsoft C
3636

3737
|||||
3838
|-|-|-|-|
39-
|**__asm**|**dllimport**<sup>2</sup>|**__int8**|**naked**<sup>2</sup>|
40-
|**__based**<sup>1</sup>|**__except**|**__int16**|**__stdcall**|
41-
|**__cdecl**|**__fastcall**|**__int32**|**thread**<sup>2</sup>|
42-
|**__declspec**|**__finally**|**__int64**|**__try**|
43-
|**dllexport**<sup>2</sup>|**__inline**|**__leave**||
39+
|**__asm**<sup>3</sup>|**dllimport**<sup>2</sup>|**__int8**<sup>3</sup>|**naked**<sup>2</sup>|
40+
|**__based**<sup>1, 3</sup>|**__except**<sup>3</sup>|**__int16**<sup>3</sup>|**__stdcall**<sup>3</sup>|
41+
|**__cdecl**<sup>3</sup>|**__fastcall**|**__int32**<sup>3</sup>|**thread**<sup>2</sup>|
42+
|**__declspec**<sup>3</sup>|**__finally**<sup>3</sup>|**__int64**<sup>3</sup>|**__try**<sup>3</sup>|
43+
|**dllexport**<sup>2</sup>|**__inline**<sup>3</sup>|**__leave**<sup>3</sup>||
4444

4545
<sup>1</sup> The **__based** keyword has limited uses for 32-bit and 64-bit target compilations.
4646

4747
<sup>2</sup> These are special identifiers when used with **__declspec**; their use in other contexts is not restricted.
4848

49-
Microsoft extensions are enabled by default. To ensure that your programs are fully portable, you can disable Microsoft extensions by specifying the /Za option (compile for ANSI compatibility) during compilation. When you do this, Microsoft-specific keywords are disabled.
49+
<sup>3</sup> For compatibility with previous versions, these keywords are available both with two leading underscores and a single leading underscore when Microsoft extensions are enabled.
50+
51+
Microsoft extensions are enabled by default. To ensure that your programs are fully portable, you can disable Microsoft extensions by specifying the [/Za \(Disable language extensions)](../build/reference/za-ze-disable-language-extensions.md) option during compilation. When you do this, some Microsoft-specific keywords are disabled.
5052

5153
When Microsoft extensions are enabled, you can use the keywords listed above in your programs. For ANSI compliance, most of these keywords are prefaced by a double underscore. The four exceptions, **dllexport**, **dllimport**, **naked**, and **thread**, are used only with **__declspec** and therefore do not require a leading double underscore. For backward compatibility, single-underscore versions of the rest of the keywords are supported.
5254

0 commit comments

Comments
 (0)