Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

DllImportAttribute::ExactSpelling Field

 

Controls whether the DllImportAttribute::CharSet field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

public:
bool ExactSpelling

Field Value

Type: System::Boolean

If false, the entry point name appended with the letter A is invoked when the DllImportAttribute::CharSet field is set to CharSet.Ansi, and the entry-point name appended with the letter W is invoked when the DllImportAttribute::CharSet field is set to the CharSet.Unicode. Typically, managed compilers set this field.

The following table shows the relationship between the CharSet and ExactSpelling fields, based on default values imposed by the programming language. You can override the default setting, but do so with caution.

Language

ANSI

Unicode

Auto

Visual Basic

ExactSpelling:=True

ExactSpelling:=True

ExactSpelling:=False

C#

ExactSpelling=false

ExactSpelling=false

ExactSpelling=false

C++

ExactSpelling=false

ExactSpelling=false

ExactSpelling=false

In some cases, Visual Basic developers use the DllImportAttribute, instead of using the Declare statement, to define a DLL function in managed code. Setting the ExactSpelling field is one of those cases.

[DllImport("user32.dll", CharSet=CharSet::Ansi, ExactSpelling=true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
                String^ Caption, unsigned int Type);

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top
Show:
© 2017 Microsoft