Bagikan melalui


LNK4248 Peringatan Alat Linker

token typeref (token) yang tidak terselesaikan untuk 'type'; gambar mungkin tidak berjalan

Jenis tidak memiliki definisi dalam metadata MSIL.

LNK4248 dapat terjadi ketika hanya ada deklarasi maju untuk jenis dalam modul MSIL (dikompilasi dengan /clr), di mana jenis direferensikan dalam modul MSIL, dan di mana modul MSIL ditautkan dengan modul asli yang memiliki definisi untuk jenis tersebut.

Dalam situasi ini, linker akan memberikan definisi jenis asli dalam metadata MSIL, dan ini dapat memberikan perilaku yang benar.

Namun, jika deklarasi jenis penerusan adalah jenis CLR, definisi jenis asli linker mungkin tidak benar

Untuk informasi selengkapnya, lihat /clr (Kompilasi Runtime Bahasa Umum).

Untuk memperbaiki kesalahan ini

  1. Berikan definisi jenis dalam modul MSIL.

Contoh

Sampel berikut menghasilkan LNK4248. Tentukan struct A untuk diselesaikan.

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

int main() {
   Test(0);
}

Sampel berikut memiliki definisi penerusan jenis.

// 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);
}

Sampel berikut menghasilkan LNK4248.

// 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;
}