Megosztás a következőn keresztül:


C3642 fordítási hiba

"return_type/args": natív kódból nem hívható meg __clrcall hívási konvencióval rendelkező függvény

Megjegyzések

A __clrcall hívási konvencióval megjelölt függvények natív (nem felügyelt) kódból nem hívhatók meg.

return_type/args a függvény neve vagy a __clrcall meghívni kívánt függvény típusa. Függvénymutatón keresztüli híváskor típust használunk.

Ha natív környezetből szeretne meghívni egy felügyelt függvényt, hozzáadhat egy "burkoló" függvényt, amely meghívja a függvényt __clrcall . Vagy használhatja a CLR marshalling mechanizmust; további információkért lásd a következőt: Marshal Function Pointers Using PInvoke.

Example

A következő példa c3642-t hoz létre:

// 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
}