Поделиться через


Ошибка компилятора C3761

"function": "retval" может отображаться только в последнем аргументе функции

Атрибут retval использовался для аргумента функции, который не был последним аргументом в списке.

Следующий пример приводит к возникновению ошибки C3761:

// C3761.cpp
#define _ATL_ATTRIBUTES 1
#include <atlbase.h>
#include <atlcom.h>

[ module(name=test) ];

[dispinterface]
__interface I
{
   [id(1)] HRESULT func([out, retval] int* i, [in] int j);
   // try the following line instead
   // [id(1)] HRESULT func([in] int i, [out, retval] int* j);
};

[coclass]
struct C : I {   // C3761
   HRESULT func(int* i, int j)
   // try the following line instead
   // HRESULT func(int j, int* i)
   {
      return S_OK;
   }
};

int main()
{
}