Skip to content

Commit f3fc26d

Browse files
committed
Merge branch 'mikejo-br5' of https://github.com/MicrosoftDocs/visualstudio-docs-pr into mikejo-br5
2 parents b022a19 + 3f15ae7 commit f3fc26d

File tree

106 files changed

+344
-232
lines changed

Some content is hidden

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

106 files changed

+344
-232
lines changed

docs/code-quality/c6011.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ void f([Pre(Null=Yes)] char* pc)
7171
The use of malloc and free have many pitfalls in terms of memory leaks and exceptions. To avoid these kinds of leaks and exception problems altogether, use the mechanisms that are provided by the C++ Standard Template Library (STL). These include [shared_ptr](/cpp/standard-library/shared-ptr-class), [unique_ptr](/cpp/standard-library/unique-ptr-class), and [vector](/cpp/standard-library/vector). For more information, see [Smart Pointers](/cpp/cpp/smart-pointers-modern-cpp) and [C++ Standard Library](/cpp/standard-library/cpp-standard-library-reference).
7272

7373
## See Also
74-
[Annotation Overview](http://msdn.microsoft.com/en-us/2345380e-2eeb-4107-907f-6e8b809c2643)
75-
[Null](http://msdn.microsoft.com/en-us/632f3684-60a0-45be-aeb1-be1521e94d88)
74+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)
7675
[NULL](/cpp/c-runtime-library/null-crt)
7776
[Indirection and Address-of Operators](/cpp/c-language/indirection-and-address-of-operators)
7877
[malloc](/cpp/c-runtime-library/reference/malloc)

docs/code-quality/c6029.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,4 @@ bool f(HANDLE hFile)
8585
```
8686

8787
## See Also
88-
[Annotation Overview](http://msdn.microsoft.com/en-us/2345380e-2eeb-4107-907f-6e8b809c2643)
88+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)

docs/code-quality/c6031.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,4 @@ void test_f()
9696

9797
## See Also
9898
[fopen_s, _wfopen_s](/cpp/c-runtime-library/reference/fopen-s-wfopen-s)
99-
[Annotation Overview](http://msdn.microsoft.com/en-us/2345380e-2eeb-4107-907f-6e8b809c2643)
100-
[MustCheck](http://msdn.microsoft.com/en-us/13c66d75-f1af-4c51-8fbe-029a38af8db0)
99+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)

docs/code-quality/c6053.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,5 @@ size_t f( )
8383
You should note that this warning is sometimes reported on certain idioms guaranteed to be safe in practice. Because of the frequency and potential consequences of this defect, the analysis tool is biased in favor of finding potential issues instead of its typical bias of reducing noise.
8484
8585
## See Also
86-
[Annotation Overview](http://msdn.microsoft.com/en-us/2345380e-2eeb-4107-907f-6e8b809c2643)
87-
[NullTerminated](http://msdn.microsoft.com/en-us/86cbc668-e134-44fa-978e-9a0d57134056)
86+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)
8887
[strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l](/cpp/c-runtime-library/reference/strncpy-s-strncpy-s-l-wcsncpy-s-wcsncpy-s-l-mbsncpy-s-mbsncpy-s-l)

docs/code-quality/c6054.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,4 @@ void g( )
5757

5858
## See Also
5959
[C6053](../code-quality/c6053.md)
60-
[Annotation Overview](http://msdn.microsoft.com/en-us/2345380e-2eeb-4107-907f-6e8b809c2643)
61-
[NullTerminated](http://msdn.microsoft.com/en-us/86cbc668-e134-44fa-978e-9a0d57134056)
60+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)

docs/code-quality/c6286.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,4 @@ void f()
7878
```
7979

8080
## See Also
81-
[Logical OR Operator: ||](http://msdn.microsoft.com/Library/31837c99-2655-4bf3-8ded-f13b7a9dc533)
81+
[Logical OR Operator: ||](/cpp/cpp/logical-or-operator-pipe-pipe)

docs/code-quality/c6314.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,5 @@ int f(int SignalValue)
4949
```
5050

5151
## See Also
52-
[Bitwise Inclusive OR Operator: |](http://msdn.microsoft.com/Library/4c8a6a68-d828-447d-875a-aedb4ce3aa9a)
52+
[Bitwise Inclusive OR Operator: |](/cpp/cpp/bitwise-inclusive-or-operator-pipe)
5353
[Conditional Operator: ? :](/cpp/cpp/conditional-operator-q)

docs/code-quality/c6317.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,5 @@ void f(int i)
5454

5555
## See Also
5656
[Bitwise AND Operator: &](/cpp/cpp/bitwise-and-operator-amp)
57-
[Logical Negation Operator: !](http://msdn.microsoft.com/Library/650add9f-a7bc-426c-b01d-5fc6a81c8b62)
58-
[One's Complement Operator: ~](http://msdn.microsoft.com/Library/4bf81967-34f7-4b4b-aade-fd03d5da0174)
57+
[Logical Negation Operator: !](/cpp/cpp/logical-negation-operator-exclpt)
58+
[One's Complement Operator: ~](/cpp/cpp/one-s-complement-operator-tilde)

docs/code-quality/c6328.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ void f( )
4040

4141
```
4242
43-
`c` would be sign-extended to a signed `int` with a value of -37, which is outside the valid range for [isspace](http://msdn.microsoft.com/Library/3ac254c4-92aa-4238-882a-3a3fb576cdf5).
43+
`c` would be sign-extended to a signed `int` with a value of -37, which is outside the valid range for [isspace](/cpp/standard-library/locale-functions#isspace).
4444
4545
To correct this problem, you can use `static_cast`, as shown in the following code:
4646

docs/code-quality/c6387.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,4 @@ void main()
5959
```
6060

6161
## See Also
62-
[Annotation Overview](http://msdn.microsoft.com/en-us/2345380e-2eeb-4107-907f-6e8b809c2643)
6362
[strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l](/cpp/c-runtime-library/reference/strlen-wcslen-mbslen-mbslen-l-mbstrlen-mbstrlen-l)

docs/code-quality/c6500.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,3 @@ void f( [Pre( Deref=1, Access=Read )] char buffer[] );
5757

5858
This warning is generated for both Pre and Post conditions.
5959

60-
## See Also
61-
[Deref](http://msdn.microsoft.com/en-us/c2855c4e-dcc7-40ba-a6fe-ebca9d555a9c)

docs/code-quality/c6501.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,3 @@ using namespace vc_attributes;
5353
void f( [Pre(ValidElementsConst=4)] char pch[] );
5454
```
5555

56-
## See Also
57-
[ValidElementsConst](http://msdn.microsoft.com/en-us/15397f85-1f05-4488-8985-15b6e7eb7bad)
58-
[ValidBytesConst](http://msdn.microsoft.com/en-us/e9594f1f-d86a-427f-a172-8898753f7696)

docs/code-quality/c6503.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,3 @@ public:
5757
void f([Pre(Null=No)] Point& pt);
5858
```
5959

60-
## See Also
61-
[Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d)

docs/code-quality/c6504.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ manager: ghogen
2121
# C6504
2222
warning C6504: invalid annotation: property may only be used on values of pointer, pointer-to-member, or array type
2323

24-
This warning indicates the use of a property on an incompatible data type. For more information about data types supported by properties, see [Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d).
25-
24+
This warning indicates the use of a property on an incompatible data type. For more information about data types supported by properties, see [Annotation Properties](using-sal-annotations-to-reduce-c-cpp-code-defects.md).
25+
2626
## Example
2727
The following code generates this warning because the `_Null_` property cannot be used on the reference data type.
2828

@@ -59,4 +59,4 @@ void f(_Pre_ _Null_ Point* pt)
5959
}
6060
```
6161

62-
The defective code shown earlier also generates warning [C6516](../code-quality/c6516.md) because property conflicts resulted in an invalid annotation.
62+
The defective code shown earlier also generates warning [C6516](../code-quality/c6516.md) because property conflicts resulted in an invalid annotation.

docs/code-quality/c6506.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ manager: ghogen
2121
# C6506
2222
warning C6506: invalid annotation: \<name> property may only be used on values of pointer or array types
2323

24-
This warning indicates that a property is used on a type other than pointer or array types. The Access, Tainted, and Valid properties can be used on all data types. Other properties, such as ValidBytesConst, ValidElementsConst, ElementSize, and NullTerminted support pointer, pointer to members, or array types. For a complete list of properties and the supported data types, see [Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d).
24+
This warning indicates that a property is used on a type other than pointer or array types. The Access, Tainted, and Valid properties can be used on all data types. Other properties, such as ValidBytesConst, ValidElementsConst, ElementSize, and NullTerminted support pointer, pointer to members, or array types. For a complete list of properties and the supported data types, see [Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md).
2525

2626
## Example
2727
The following code generates this warning:

docs/code-quality/c6508.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,3 @@ using namespace vc_attributes;
5454
void f ([Pre(Deref=1,Access=Read)]const char *pc);
5555
```
5656

57-
## See Also
58-
[Deref](http://msdn.microsoft.com/en-us/c2855c4e-dcc7-40ba-a6fe-ebca9d555a9c)
59-
[Access](http://msdn.microsoft.com/en-us/89d372a5-3f5c-41fb-baf3-89f58e00e288)

docs/code-quality/c6511.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,5 @@ using namespace vc_attributes;
5454
```
5555

5656
## See Also
57-
[Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d)
57+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)
5858
[C6516](../code-quality/c6516.md)

docs/code-quality/c6513.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ void f ([Pre(ElementSizeConst=4, ValidElementsConst=2)] void* pc);
5757
Incorrect use of ElementSize property also generates this warning.
5858

5959
## See Also
60-
[Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d)
60+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)

docs/code-quality/c6515.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ manager: ghogen
2121
# C6515
2222
warning C6515 - invalid annotation: \<name> property may only be used on values of pointer type
2323

24-
This warning indicates that a property for use on pointers was applied to a non-pointer type. For a list of annotation properties, see [Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d).
24+
This warning indicates that a property for use on pointers was applied to a non-pointer type. For a list of annotation properties, see [Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md).
2525

2626
## Example
2727
The following code generates this warning:

docs/code-quality/c6517.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,4 @@ void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=Read)] char* buffer );
4545
```
4646

4747
## See Also
48-
[Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d)
48+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)

docs/code-quality/c6522.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ warning C6522: invalid size specification: expression must be of integral type
2424
> [!NOTE]
2525
> This warning occurs only in code that is using a deprecated version of the source-code annotation language (SAL). We recommend that you port your code to use the latest version of SAL. For more information, see [Using SAL Annotations to Reduce C/C++ Code Defects](../code-quality/using-sal-annotations-to-reduce-c-cpp-code-defects.md).
2626
27-
This warning indicates that an integral type was expected, but an incorrect data type was used. You can use annotation properties that accept the size of a parameter in terms of another parameter, but you must use correct data type. For a list of annotation properties, see [Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d).
27+
This warning indicates that an integral type was expected, but an incorrect data type was used. You can use annotation properties that accept the size of a parameter in terms of another parameter, but you must use correct data type. For a list of annotation properties, see [Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md).
2828

2929
## Example
3030
The following code generates this warning:

docs/code-quality/c6525.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,4 @@ void f([Pre(ValidElements="*count")] char * px, [Pre(Valid=Yes)]size_t *count);
5555
```
5656

5757
## See Also
58-
[Annotation Properties](http://msdn.microsoft.com/en-us/f77b4370-6bda-4294-bd2a-e7d0df182a3d)
58+
[Using SAL Annotations to reduce code defects](using-sal-annotations-to-reduce-c-cpp-code-defects.md)

docs/code-quality/ca1014-mark-assemblies-with-clscompliantattribute.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ manager: ghogen
5151

5252
## See Also
5353
<xref:System.CLSCompliantAttribute?displayProperty=fullName>
54-
[Language Independence and Language-Independent Components](http://msdn.microsoft.com/Library/4f0b77d0-4844-464f-af73-6e06bedeafc6)
54+
[Language Independence and Language-Independent Components](/dotnet/standard/language-independence-and-language-independent-components)

docs/code-quality/ca1026-default-parameters-should-not-be-used.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ manager: ghogen
5151
[CA1025: Replace repetitive arguments with params array](../code-quality/ca1025-replace-repetitive-arguments-with-params-array.md)
5252

5353
## See Also
54-
[Language Independence and Language-Independent Components](http://msdn.microsoft.com/Library/4f0b77d0-4844-464f-af73-6e06bedeafc6)
54+
[Language Independence and Language-Independent Components](/dotnet/standard/language-independence-and-language-independent-components)

docs/code-quality/ca1403-auto-layout-types-should-not-be-com-visible.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,5 @@ manager: ghogen
5252
[CA1408: Do not use AutoDual ClassInterfaceType](../code-quality/ca1408-do-not-use-autodual-classinterfacetype.md)
5353

5454
## See Also
55-
[Introducing the Class Interface](http://msdn.microsoft.com/en-us/733c0dd2-12e5-46e6-8de1-39d5b25df024)
5655
[Qualifying .NET Types for Interoperation](/dotnet/framework/interop/qualifying-net-types-for-interoperation)
5756
[Interoperating with Unmanaged Code](/dotnet/framework/interop/index)

docs/code-quality/ca1405-com-visible-type-base-types-should-be-com-visible.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,4 @@ manager: ghogen
4848

4949
## See Also
5050
<xref:System.Runtime.InteropServices.ClassInterfaceAttribute?displayProperty=fullName>
51-
[Introducing the Class Interface](http://msdn.microsoft.com/en-us/733c0dd2-12e5-46e6-8de1-39d5b25df024)
5251
[Interoperating with Unmanaged Code](/dotnet/framework/interop/index)

docs/code-quality/ca1408-do-not-use-autodual-classinterfacetype.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,5 @@ manager: ghogen
5454
[CA1412: Mark ComSource Interfaces as IDispatch](../code-quality/ca1412-mark-comsource-interfaces-as-idispatch.md)
5555

5656
## See Also
57-
[Introducing the Class Interface](http://msdn.microsoft.com/en-us/733c0dd2-12e5-46e6-8de1-39d5b25df024)
5857
[Qualifying .NET Types for Interoperation](/dotnet/framework/interop/qualifying-net-types-for-interoperation)
5958
[Interoperating with Unmanaged Code](/dotnet/framework/interop/index)

docs/code-quality/ca1412-mark-comsource-interfaces-as-idispatch.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,4 @@ manager: ghogen
5050
[CA1408: Do not use AutoDual ClassInterfaceType](../code-quality/ca1408-do-not-use-autodual-classinterfacetype.md)
5151

5252
## See Also
53-
[How to: Raise Events Handled by a COM Sink](http://msdn.microsoft.com/en-us/7c9944b2-e951-4c3e-a0a1-59b2ae37d7fd)
5453
[Interoperating with Unmanaged Code](/dotnet/framework/interop/index)

docs/code-quality/ca1414-mark-boolean-p-invoke-arguments-with-marshalas.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ manager: ghogen
3434
## Rule Description
3535
A platform invoke method accesses unmanaged code and is defined by using the `Declare` keyword in [!INCLUDE[vbprvb](../code-quality/includes/vbprvb_md.md)] or the <xref:System.Runtime.InteropServices.DllImportAttribute?displayProperty=fullName>. <xref:System.Runtime.InteropServices.MarshalAsAttribute> specifies the marshaling behavior that is used to convert data types between managed and unmanaged code. Many simple data types, such as <xref:System.Byte?displayProperty=fullName> and <xref:System.Int32?displayProperty=fullName>, have a single representation in unmanaged code and do not require specification of their marshaling behavior; the common language runtime automatically supplies the correct behavior.
3636

37-
The <xref:System.Boolean> data type has multiple representations in unmanaged code. When the <xref:System.Runtime.InteropServices.MarshalAsAttribute> is not specified, the default marshaling behavior for the <xref:System.Boolean> data type is <xref:System.Runtime.InteropServices.UnmanagedType?displayProperty=fullName>. This is a 32-bit integer, which is not appropriate in all circumstances. The Boolean representation that is required by the unmanaged method should be determined and matched to the appropriate <xref:System.Runtime.InteropServices.UnmanagedType?displayProperty=fullName>. UnmanagedType.Bool is the Win32 BOOL type, which is always 4 bytes. UnmanagedType.U1 should be used for C++ `bool` or other 1-byte types. For more information, see [Default Marshaling for Boolean Types](http://msdn.microsoft.com/en-us/d4c00537-70f7-4ca6-8197-bfc1ec037ff9).
37+
The <xref:System.Boolean> data type has multiple representations in unmanaged code. When the <xref:System.Runtime.InteropServices.MarshalAsAttribute> is not specified, the default marshaling behavior for the <xref:System.Boolean> data type is <xref:System.Runtime.InteropServices.UnmanagedType?displayProperty=fullName>. This is a 32-bit integer, which is not appropriate in all circumstances. The Boolean representation that is required by the unmanaged method should be determined and matched to the appropriate <xref:System.Runtime.InteropServices.UnmanagedType?displayProperty=fullName>. UnmanagedType.Bool is the Win32 BOOL type, which is always 4 bytes. UnmanagedType.U1 should be used for C++ `bool` or other 1-byte types.
3838

3939
## How to Fix Violations
4040
To fix a violation of this rule, apply <xref:System.Runtime.InteropServices.MarshalAsAttribute> to the <xref:System.Boolean> parameter or return value. Set the value of the attribute to the appropriate <xref:System.Runtime.InteropServices.UnmanagedType>.
@@ -56,5 +56,4 @@ manager: ghogen
5656

5757
## See Also
5858
<xref:System.Runtime.InteropServices.UnmanagedType?displayProperty=fullName>
59-
[Default Marshaling for Boolean Types](http://msdn.microsoft.com/en-us/d4c00537-70f7-4ca6-8197-bfc1ec037ff9)
6059
[Interoperating with Unmanaged Code](/dotnet/framework/interop/index)

docs/code-quality/ca2100-review-sql-queries-for-security-vulnerabilities.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ manager: ghogen
4949

5050
- <xref:System.Data.OracleClient.OracleCommand?displayProperty=fullName> and <xref:System.Data.OracleClient.OracleDataAdapter?displayProperty=fullName>
5151

52-
- [System.Data.SqlServerCe.SqlCeCommand](https://msdn.microsoft.com/library/system.data.sqlserverce.sqlcecommand.aspx) and [System.Data.SqlServerCe.SqlCeDataAdapter](https://msdn.microsoft.com/library/system.data.sqlserverce.sqlcedataadapter.aspx)
53-
5452
- <xref:System.Data.SqlClient.SqlCommand?displayProperty=fullName> and <xref:System.Data.SqlClient.SqlDataAdapter?displayProperty=fullName>
5553

5654
Notice that this rule is violated when the ToString method of a type is used explicitly or implicitly to construct the query string. The following is an example.

docs/code-quality/ca2102-catch-non-clscompliant-exceptions-in-general-handlers.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,4 @@ csc /r:ThrowNonClsCompliantException.dll CatchNonClsCompliantException.cs
8080
## See Also
8181
[Exceptions and Exception Handling](/dotnet/csharp/programming-guide/exceptions/exceptions-and-exception-handling)
8282
[Ilasm.exe (IL Assembler)](/dotnet/framework/tools/ilasm-exe-il-assembler)
83-
[Overriding Security Checks](http://msdn.microsoft.com/en-us/4acdeff5-fc05-41bf-8505-7387cdbfca28)
84-
[Language Independence and Language-Independent Components](http://msdn.microsoft.com/Library/4f0b77d0-4844-464f-af73-6e06bedeafc6)
83+
[Language Independence and Language-Independent Components](/dotnet/standard/language-independence-and-language-independent-components)

0 commit comments

Comments
 (0)