Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 3) C4792

funkcja "function" zadeklarowana przy użyciu polecenia sysimport i przywoływana z kodu natywnego; importowanie biblioteki wymaganej do połączenia

Funkcja natywna zaimportowana do programu z funkcją DllImport została wywołana z funkcji niezarządzanej. W związku z tym należy połączyć się z biblioteką importu dla biblioteki DLL.

Nie można rozpoznać tego ostrzeżenia w kodzie lub zmieniając sposób kompilowania. Użyj pragma ostrzeżenia, aby wyłączyć to ostrzeżenie.

Poniższy przykład generuje C4792:

// C4792.cpp
// compile with: /clr /W3
// C4792 expected
using namespace System::Runtime::InteropServices;
[DllImport("msvcrt")]
extern "C" int __cdecl puts(const char *);
int main() {}

// Uncomment the following line to resolve.
// #pragma warning(disable : 4792)
#pragma unmanaged
void func(void){
   puts("test");
}