Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
"token typeref não resolvido para 'tipo'; a imagem poderá não ser executada"
Observações
Um tipo não tem uma definição nos metadados MSIL.
LNK4248 pode ocorrer quando existe apenas uma declaração antecipada para um tipo num módulo MSIL (compilado com /clr), onde o tipo é referenciado no módulo MSIL, e este módulo é ligado a um módulo nativo que contém a definição do tipo.
Nessa situação, o vinculador fornecerá a definição de tipo nativo nos metadados MSIL, e isso pode fornecer o comportamento correto.
No entanto, se uma declaração de tipo forward for um tipo CLR, a definição de tipo nativo do vinculador pode não estar correta
Para obter mais informações, consulte /clr (Common Language Runtime Compilation).
Para corrigir este erro
- Forneça a definição de tipo no módulo MSIL.
Examples
O exemplo a seguir gera LNK4248. Defina struct A para resolver.
// LNK4248.cpp
// compile with: /clr /W1
// LNK4248 expected
struct A;
void Test(A*){}
int main() {
Test(0);
}
O exemplo a seguir tem uma definição direta de um tipo.
// 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);
}
O exemplo a seguir gera 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;
}