[protobuf] 65k string limit in MS Visual C++ 2005

2010-04-06 Thread Iiro
Hi!

I am having a problem when compiling my libraries which use protobuf
generated sources when I'm using the Visual C++ 2005 Professional
edition. I am using the version 2.3.0 of Protocol Buffers.

I have described a custom string EnumValueOptions extension as
follows:

extend google.protobuf.EnumValueOptions {
  optional string message = 5;
}

Then, I use this string option in multiple enumeration values in
single enumeration proto, somewhat like this:

enum ExampleEnum
{
  ENUMERATION_OPTION = 1  [(message) = Enumeration option
1];
  ENUMERATION_OPTION = 2  [(message) = Enumeration option
2];
  ENUMERATION_OPTION = 3  [(message) = Enumeration option
3];
  ENUMERATION_OPTION = 4  [(message) = Enumeration option
4];
}

There are a lot more of these in the real implementation (maybe
hundreds and the messages are longer).

When I compile this with Visual Studio 2005 Pro I get:

fatal error C1091: compiler limit: string exceeds 65535 bytes in
length

This comes from the protoc generated file (i.e. exampleenum.pb.cc)

I have tried to compile this test project also in Linux environment
and with Visual C++ 2008 Express edition and the problem does not
reproduce.

I guess that the question is should the Protocol Buffers work when
using Visual Studio 2005? I can send you example project files if
necessary.

Thanks for reply in advance!

-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.



Re: [protobuf] 65k string limit in MS Visual C++ 2005

2010-04-06 Thread Jason Hsueh
This sounds like a C++ version of the Java issue fixed with
r189http://code.google.com/p/protobuf/source/detail?r=189:
the encoded descriptor data in the generated file exceeded the Java string
literal limit. This large descriptor was previously built in C++ but was
removed from the test suite in a later revision. Kenton, do you recall if
you ever ran the test with VC++2005? Just wondering if it only shows up in
certain environments/settings.

On Tue, Apr 6, 2010 at 12:13 AM, Iiro iiro.hiet...@gmail.com wrote:

 Hi!

 I am having a problem when compiling my libraries which use protobuf
 generated sources when I'm using the Visual C++ 2005 Professional
 edition. I am using the version 2.3.0 of Protocol Buffers.

 I have described a custom string EnumValueOptions extension as
 follows:

 extend google.protobuf.EnumValueOptions {
  optional string message = 5;
 }

 Then, I use this string option in multiple enumeration values in
 single enumeration proto, somewhat like this:

 enum ExampleEnum
 {
  ENUMERATION_OPTION = 1  [(message) = Enumeration option
 1];
  ENUMERATION_OPTION = 2  [(message) = Enumeration option
 2];
  ENUMERATION_OPTION = 3  [(message) = Enumeration option
 3];
  ENUMERATION_OPTION = 4  [(message) = Enumeration option
 4];
 }

 There are a lot more of these in the real implementation (maybe
 hundreds and the messages are longer).

 When I compile this with Visual Studio 2005 Pro I get:

 fatal error C1091: compiler limit: string exceeds 65535 bytes in
 length

 This comes from the protoc generated file (i.e. exampleenum.pb.cc)

 I have tried to compile this test project also in Linux environment
 and with Visual C++ 2008 Express edition and the problem does not
 reproduce.

 I guess that the question is should the Protocol Buffers work when
 using Visual Studio 2005? I can send you example project files if
 necessary.

 Thanks for reply in advance!

 --
 You received this message because you are subscribed to the Google Groups
 Protocol Buffers group.
 To post to this group, send email to proto...@googlegroups.com.
 To unsubscribe from this group, send email to
 protobuf+unsubscr...@googlegroups.comprotobuf%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/protobuf?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.