This documentation is archived and is not being maintained.

DllImportAttribute.CallingConvention Field

Indicates the calling convention of an entry point.

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

'Declaration
Public CallingConvention As CallingConvention
'Usage
Dim instance As DllImportAttribute 
Dim value As CallingConvention 

value = instance.CallingConvention 

instance.CallingConvention = value

You set this field to one of the CallingConvention enumeration members. The default value for the CallingConvention field is Winapi, which in turn defaults to StdCall convention.

For more information, see Calling Convention in the MSDN library.

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

Imports System
 Imports Microsoft.VisualBasic
 Imports System.Runtime.InteropServices
 Public Class LibWrap
 ' Visual Basic does not support varargs, so all arguments must be 
 ' explicitly defined. CallingConvention.Cdecl must be used since the stack 
 ' is cleaned up by the caller.
 ' int printf(const char *format [, argument]...)
 <DllImport("msvcrt.dll", CallingConvention := CallingConvention.Cdecl)> _
 Overloads Shared Function printf (_
     format As String, i As Integer, d As Double) As Integer
 End Function
 <DllImport("msvcrt.dll", CallingConvention := CallingConvention.Cdecl)> _
 Overloads Shared Function printf (_
     format As String, i As Integer, s As String) As Integer
 End Function
 End Class 'LibWrap
 Public Class App
     Public Shared Sub Main()
         LibWrap.printf(ControlChars.CrLf + "Print params: %i %f", 99, 
                        99.99)
         LibWrap.printf(ControlChars.CrLf + "Print params: %i %s", 99, _
                        "abcd")
     End Sub 'Main
 End Class 'App

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show: