Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'return_type/args': Eine Funktion kann nicht mit __clrcall Aufrufkonvention aus systemeigenem Code aufgerufen werden.
Bemerkungen
Eine Funktion, die mit der __clrcall Aufrufkonvention gekennzeichnet ist, kann nicht aus systemeigenem (nicht verwaltetem) Code aufgerufen werden.
return_type/args ist entweder der Name der Funktion oder der Typ der __clrcall Funktion, die Sie aufrufen möchten. Ein Typ wird verwendet, wenn Sie einen Funktionszeiger aufrufen.
Um eine verwaltete Funktion aus einem systemeigenen Kontext aufzurufen, können Sie eine "Wrapper"-Funktion hinzufügen, die die __clrcall Funktion aufruft. Oder Sie können den CLR-Marshallmechanismus verwenden; weitere Informationen finden Sie unter How to: Marshal Function Pointers Using PInvoke .
Example
Im folgenden Beispiel wird C3642 generiert:
// 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
}