Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
'return_type/args': não é possível chamar uma função com a convenção de chamada __clrcall a partir de código nativo
Observações
Uma função marcada com a convenção de chamada __clrcall não pode ser chamada a partir do código nativo (não gerenciado).
return_type/args é o nome da função ou o tipo da função __clrcall que você está tentando chamar. Um tipo é usado quando você está chamando por meio de um ponteiro de função.
Para chamar uma função gerenciada a partir de um contexto nativo, você pode adicionar uma função "wrapper" que chamará a função __clrcall. Ou você pode usar o mecanismo de marshalling do CLR; consulte Como fazer marshal de ponteiros de função usando o PInvoke para 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
}