DllImport & DllImportAttribute

29/08/2004 - 12:32 por Castorp | Informe spam
Hola,

Estoy estudiando un código en C# y observo que se utiliza
la función DllImport("kernel32.dll", ExactSpelling=true),
cuando busco la documentación de esta función en la ayuda
del Visual Studio .NET lo más parecido que encuentro es
DllImportAttribute. A esta última función se le pasa
igualmente un nombre de una DLL. ¿Alguien podría
explicarme si hay alguna diferencia entre ambas y por que
una de ellas no está documentada pero funciona igualmente?

Otra duda que tengo es el uso de los [] cuando se llama a
esta función. ¿Que significa?, ¿que se le dice al
compilador cuando pones los []?, lo pregunto porque
observo en este código que no solamente lo utiliza para
llamar a esta función sino también por ejemplo para la
siguiente:

[StructLayout(LayoutKind.Sequential, Pack=1)]

Muchas gracias.
 

Leer las respuestas

#1 Tomas Restrepo \(MVP\)
29/08/2004 - 14:57 | Informe spam
Castorp,
<<
Estoy estudiando un código en C# y observo que se utiliza
la función DllImport("kernel32.dll", ExactSpelling=true),
cuando busco la documentación de esta función en la ayuda
del Visual Studio .NET lo más parecido que encuentro es
DllImportAttribute. A esta última función se le pasa
igualmente un nombre de una DLL. ¿Alguien podría
explicarme si hay alguna diferencia entre ambas y por que
una de ellas no está documentada pero funciona igualmente?






NO es una función, es un atributo. En si mismo, un atributo es una clase, la
costumbre es que su nombre termine con la palabra "Attribute", en cuyo caso
el compilador permite que cuando se use dicho atributo este sufijo se omita.
Por lo tanto, DllImport y DllImportAttribute son lo mismo.
<<
Otra duda que tengo es el uso de los [] cuando se llama a
esta función. ¿Que significa?, ¿que se le dice al
compilador cuando pones los []?,





Esa es la sintaxis para poner asociar un atributo a un elemento (asembly,
propiedad, clase, funcion, etc). Nuevamente, un atributo no es una
funcion,solo parece una porque se usa una sintaxis similar a la llamada de
un constructor.

Tomas Restrepo

Preguntas similares