Czy są jakieś lepsze sposoby rozwiązania ostrzeżeń podczas kompilowania pliku źródłowego generowanego przez bufor protokołu?

Prosty plik proto:

message Person {
  required int32 id = 1;
  required string name = 2;
  optional string email = 3;
}

Został skompilowany przez protoc.exe, a wyniki są używane również w prostym projekcie testowym, który zasadniczo nie zawiera niczego oprócz plików generowanych przez protoc.

Używam msvc10 do zbudowania projektu testowego (x64), a następnie dał mi wiele ostrzeżeń:

Warning 1   warning C4244: 'return' : conversion from '__int64' to 'int', possible loss of data D:\Work\protobuf-trunk\src\google\protobuf\descriptor.h 1441    1   testProtobuf
...
Warning 11  warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data    D:\Work\protobuf-trunk\src\google\protobuf\unknown_field_set.h  142 1   testProtobuf
Warning 12  warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data  D:\Work\protobuf-trunk\src\google\protobuf\unknown_field_set.h  237 1   testProtobuf
...
Warning 14  warning C4244: '=' : conversion from '__int64' to 'int', possible loss of data  D:\Work\protobuf-trunk\src\google\protobuf\io\coded_stream.h    902 1   testProtobuf
Warning 15  warning C4244: 'return' : conversion from '__int64' to 'int', possible loss of data D:\Work\protobuf-trunk\src\google\protobuf\io\coded_stream.h    1078    1   testProtobuf
Warning 16  warning C4267: 'argument' : conversion from 'size_t' to 'google::protobuf::uint32', possible loss of data   D:\Work\protobuf-trunk\src\google\protobuf\wire_format_lite_inl.h   663 1   testProtobuf
...
Warning 19  warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data  D:\Work\protobuf-trunk\src\google\protobuf\wire_format_lite_inl.h   739 1   testProtobuf
Warning 20  warning C4267: 'argument' : conversion from 'size_t' to 'google::protobuf::uint32', possible loss of data   D:\Work\protobuf-trunk\src\google\protobuf\wire_format_lite_inl.h   742 1   testProtobuf
Warning 21  warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data  D:\Work\protobuf-trunk\src\google\protobuf\wire_format_lite_inl.h   743 1   testProtobuf
Warning 22  warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data    D:\Work\testProtobuf\testProtobuf\person.pb.cc  211 1   testProtobuf
...
Warning 28  warning C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility 2239    1   testProtobuf
Warning 29  warning C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility 2239    1   testProtobuf

Czy jest jakiś dobry sposób na zaradzenie wszystkim tym ostrzeżeniom? Wszelkie sugestie będą bardzo mile widziane.

ps. Sam projekt libprotobuf może być czysty skompilowany przez msvc10 bez żadnego ostrzeżenia.

[edytuj 2013/02/20]

rozwiązanie robocze:

ustaw właściwości dla plików .cc wygenerowanych przez protoc:
właściwości konfiguracyjne -> c / c ++ -> zaawansowane -> wyłącza określone ostrzeżenia

questionAnswers(1)

yourAnswerToTheQuestion