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.
'return_type/args' : não é possível chamar uma função com a convenção de chamada __clrcall desde o código nativo
Observações
Uma função marcada com a convenção de chamada __clrcall não pode ser chamada a partir de código nativo (não gerenciado).
return_type/args é o nome da função ou o tipo da função que __clrcall você está tentando chamar. Um tipo é usado quando você está chamando por meio de um ponteiro de função.
Para chamar uma função gerida de um contexto nativo, pode adicionar uma função "envolvente" que chamará a função __clrcall. Ou, pode utilizar o mecanismo de marshalização do CLR; consulte Como: Marcar Ponteiros de Função com o Uso de PInvoke para obter mais informações.
Example
O exemplo a seguir gera C3642:
// C3642.cpp
// compile with: /clr
using namespace System;
struct S {
void Test(String ^ s) { // CLR type in signature, implicitly __clrcall
Console::WriteLine(s);
}
void Test2(char * s) {
Test(gcnew String(s));
}
};
#pragma unmanaged
int main() {
S s;
s.Test("abc"); // C3642
s.Test2("abc"); // OK
}