Compartir a través de


Error de las herramientas del vinculador LNK2028

"exported_function" (decorated_name) al que se hace referencia en la función "function_containing_function_call" (decorated_name)

Comentarios

Al intentar importar una función nativa en una imagen pura, recuerde que las convenciones de llamada implícitas difieren entre compilaciones nativas y puras.

La opción del compilador /clr:pure está en desuso en Visual Studio 2015 y no se admite en Visual Studio 2017.

Ejemplos

Este ejemplo de código genera un componente con una función nativa exportada cuya convención de llamada es implícita __cdecl.

// LNK2028.cpp
// compile with: /LD
__declspec(dllexport) int func() {
   return 3;
}

En el ejemplo siguiente se crea un cliente puro que consume la función nativa. Sin embargo, la convención de llamada en /clr:pure es __clrcall. En el ejemplo siguiente se genera LNK2028.

// LNK2028_b.cpp
// compile with: /clr:pure lnk2028.lib
// LNK2028 expected
int func();

int main() {
   return func();
}