DllImportAttribute.CallingConvention Campo

Definición

Indica la convención de llamada de un punto de entrada.

C#
public System.Runtime.InteropServices.CallingConvention CallingConvention;

Valor de campo

Ejemplos

En algunos casos, los desarrolladores de Visual Basic usan , DllImportAttributeen lugar de la Declare instrucción , para definir una función DLL en código administrado. Establecer el CallingConvention campo es uno de esos casos.

C#
using System;
using System.Runtime.InteropServices;

internal static class NativeMethods
{
    // C# doesn't 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", CharSet = CharSet.Ansi,
        CallingConvention = CallingConvention.Cdecl)]
    internal static extern int printf(string format, int i, double d);

    [DllImport("msvcrt.dll", CharSet = CharSet.Ansi,
        CallingConvention = CallingConvention.Cdecl)]
    internal static extern int printf(string format, int i, string s);
}

public class App
{
    public static void Main()
    {
        NativeMethods.printf("\nPrint params: %i %f", 99, 99.99);
        NativeMethods.printf("\nPrint params: %i %s", 99, "abcd");
    }
}

Comentarios

Este campo se establece en uno de los CallingConvention miembros de enumeración. El valor predeterminado del CallingConvention campo es Winapi, que a su vez tiene StdCall como valor predeterminado la convención en Windows y Cdecl en todas las demás plataformas.

Se aplica a

Produto Versións
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Consulte también