Freigeben über


Compilerwarnung (Ebene 1) C4537

'object' : 'operator' angewendet auf nicht-UDT-Typ

Hinweise

Ein Verweis wurde übergeben, bei dem ein Objekt (benutzerdefinierter Typ) erwartet wurde. Ein Verweis ist kein Objekt, aber Inlineassemblercode kann die Unterscheidung nicht vornehmen. Der Compiler generiert Code, als ob objekt eine Instanz war.

Beispiel

Im folgenden Beispiel wird C4537 generiert und veranschaulicht, wie Sie es beheben können:

// C4537.cpp
// compile with: /W1 /c
// processor: x86
struct S {
    int member;
};

void f1(S &s) {
    __asm mov eax, s.member;   // C4537
    // try the following code instead
    // or, make the declaration "void f1(S s)"
    /*
    mov eax, s
    mov eax, [eax]s.member
    */
}