Aviso do compilador (nível 1) C4581
Comportamento preterido: '"string1"' substituído por 'string2' para processar atributo
Esse erro pode ser gerado como resultado do trabalho de conformidade do compilador que foi feito para o Visual Studio 2005: verificação de parâmetros para atributos do Visual C++.
Em versões anteriores, os valores de atributo eram aceitos se estavam entre aspas ou não. Se o valor for uma enumeração, ele não deverá estar entre aspas.
Exemplo
A amostra a seguir gera C4581.
// C4581.cpp
// compile with: /c /W1
#include "unknwn.h"
[object, uuid("00000000-0000-0000-0000-000000000001")]
__interface IMyI : IUnknown {};
[coclass, uuid(12345678-1111-2222-3333-123456789012), threading("free")] // C4581
// try the following line instead
// [coclass, uuid(12345678-1111-2222-3333-123456789012), threading(free)]
class CSample : public IMyI {};