Delen via


Linkerhulpprogramma's Waarschuwing LNK4248

niet-opgelost typeref-token (token) voor 'type'; image mogelijk niet kan worden uitgevoerd

Opmerkingen

Een type heeft geen definitie in MSIL-metagegevens.

LNK4248 kan optreden wanneer er slechts een doorstuurdeclaratie is voor een type in een MSIL-module (gecompileerd met /clr), waar naar het type wordt verwezen in de MSIL-module en waarbij de MSIL-module is gekoppeld aan een systeemeigen module die een definitie voor het type heeft.

In deze situatie levert de linker de systeemeigen typedefinitie in de MSIL-metagegevens, wat kan zorgen voor het juiste gedrag.

Echter, als een doorstuurtypedeclaratie een CLR-type is, is de interne typdefinitie van de linker mogelijk niet juist.

Zie /clr (Common Language Runtime Compilation) voor meer informatie.

Deze fout corrigeren

  1. Geef de typedefinitie op in de MSIL-module.

Voorbeelden

In het volgende voorbeeld wordt LNK4248 gegenereerd. Definieer de struct A die u wilt oplossen.

// LNK4248.cpp
// compile with: /clr /W1
// LNK4248 expected
struct A;
void Test(A*){}

int main() {
   Test(0);
}

Het volgende voorbeeld bevat een vooruitdefinitie van een type.

// LNK4248_2.cpp
// compile with: /clr /c
class A;   // provide a definition for A here to resolve
A * newA();
int valueA(A * a);

int main() {
   A * a = newA();
   return valueA(a);
}

In het volgende voorbeeld wordt LNK4248 gegenereerd.

// LNK4248_3.cpp
// compile with: /c
// post-build command: link LNK4248_2.obj LNK4248_3.obj
class A {
public:
   int b;
};

A* newA() {
   return new A;
}

int valueA(A * a) {
   return (int)a;
}