[reflection] Compilation errors

Hi there, I just pulled the latest reflection code from the sandbox and tried to compile the example. But unfortunately there are compilation errors. For example: c:\boost-sandbox\boost\extension\impl\library_impl.hpp(37) : error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' Is the relection lib in a usable stage? Thanks, Christian

Christian Henning wrote:
Hi there, I just pulled the latest reflection code from the sandbox and tried to compile the example. But unfortunately there are compilation errors.
For example:
c:\boost-sandbox\boost\extension\impl\library_impl.hpp(37) : error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR'
Is the relection lib in a usable stage?
I don't know, but try to compile using the "Multi-Byte character set" flag to get rid of the above error (assuming that you are using VC++). If the library only supports multi-byte mode, it should probably explicitly use the Ansi varieties of the Win32 APIs. / Johan

I think his problem is that VC++ wizard automatically uses MB-charset for wizard generated projects. I assume the lib itself uses LoadLibrary, which expands dependent on the MB-Setting to either LoadLibraryA or LoadLibraryW. Right-click on the project and select Properties; in the General tree node set the Character Set to 'Not Set' instead of Multi-Byte... Than it should be fine. Best Regards, Ovanes On 10/30/07, Johan Nilsson <r.johan.nilsson@gmail.com> wrote:
Christian Henning wrote:
Hi there, I just pulled the latest reflection code from the sandbox and tried to compile the example. But unfortunately there are compilation errors.
For example:
c:\boost-sandbox\boost\extension\impl\library_impl.hpp(37) : error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR'
Is the relection lib in a usable stage?
I don't know, but try to compile using the "Multi-Byte character set" flag to get rid of the above error (assuming that you are using VC++).
If the library only supports multi-byte mode, it should probably explicitly use the Ansi varieties of the Win32 APIs.
/ Johan
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Thanks guys, that solved this problem. Still I'm having compilation errors. I'm trying to compile the following code: #include "car.hpp" #include <boost/extension/extension.hpp> #include <boost/reflection/reflection.hpp> #include <boost/reflection/reflector.hpp> int _tmain(int argc, _TCHAR* argv[]) { boost::extension::reflection<car, std::string> car_reflection( "A Car!" ); return 0; } The car class is separated into a header file. The errors have something to do with the extension namespace. Here are some examples: 1>c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\reflection.cpp(13) : error C3083: 'extension': the symbol to the left of a '::' must be a type 1>c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\reflection.cpp(13) : error C2039: 'reflection' : is not a member of 'boost' 1>c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\reflection.cpp(13) : error C2065: 'reflection' : undeclared identifier 1>c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\reflection.cpp(13) : error C2275: 'car' : illegal use of this type as an expression 1> c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\car.hpp(15) : see declaration of 'car' 1>c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\reflection.cpp(13) : error C2275: 'std::string' : illegal use of this type as an expression 1>c:\documents and settings\i64044\my documents\visual studio 2005\projects\reflection\reflection\reflection.cpp(13) : error C3861: 'car_reflection': identifier not found I think the real question is what header files and compiler symbols I need to use to have the code compiling? The documentation is a little spares on details. Thanks, Christian On 10/30/07, Ovanes Markarian <om_boost@keywallet.com> wrote:
I think his problem is that VC++ wizard automatically uses MB-charset for wizard generated projects. I assume the lib itself uses LoadLibrary, which expands dependent on the MB-Setting to either LoadLibraryA or LoadLibraryW.
Right-click on the project and select Properties; in the General tree node set the Character Set to 'Not Set' instead of Multi-Byte... Than it should be fine.
Best Regards, Ovanes
On 10/30/07, Johan Nilsson <r.johan.nilsson@gmail.com> wrote:
Christian Henning wrote:
Hi there, I just pulled the latest reflection code from the sandbox and tried to compile the example. But unfortunately there are compilation errors.
For example:
c:\boost-sandbox\boost\extension\impl\library_impl.hpp(37) : error
C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR'
Is the relection lib in a usable stage?
I don't know, but try to compile using the "Multi-Byte character set" flag to get rid of the above error (assuming that you are using VC++).
If the library only supports multi-byte mode, it should probably explicitly use the Ansi varieties of the Win32 APIs.
/ Johan
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

A reflection library in Boost? I'd like to see that, I could dump the simple one I'm writing then. Is it part of the boost development code, or is there a link to download it somewhere? I'm happy to help test and harden it. Damien _____ From: Christian Henning [mailto:chhenning@gmail.com] To: boost-users@lists.boost.org Sent: Tue, 30 Oct 2007 08:25:33 -0600 Subject: Re: [Boost-users] [reflection] Compilation errors

Damien Hocking wrote:
A reflection library in Boost? I'd like to see that, I could dump the simple one I'm writing then.
Is it part of the boost development code, or is there a link to download it somewhere? I'm happy to help test and harden it.
Yes, It was part of my Google Summer of Code 2007 work.. :) You can get it from the Boost Sandbox SVN. Also you can contact me or Jeremy Pack for details. Bye! -- Mariano

I see that this is not in the SOC/2007 directory it is in the sandbox/boost/reflection ? Along with the extesnsion directory? "Mariano Gabriel Consoni" <mariano.consoni@gmail.com> wrote in message news:47278B19.8070608@gmail.com...
Damien Hocking wrote:
A reflection library in Boost? I'd like to see that, I could dump the simple one I'm writing then.
Is it part of the boost development code, or is there a link to download it somewhere? I'm happy to help test and harden it.
Yes, It was part of my Google Summer of Code 2007 work.. :)
You can get it from the Boost Sandbox SVN. Also you can contact me or Jeremy Pack for details.
Bye!
-- Mariano

Christian Henning wrote:
Thanks guys, that solved this problem.
Still I'm having compilation errors. I'm trying to compile the following code:
#include "car.hpp" #include <boost/extension/extension.hpp> #include <boost/reflection/reflection.hpp> #include <boost/reflection/reflector.hpp>
int _tmain(int argc, _TCHAR* argv[]) { boost::extension::reflection<car, std::string> car_reflection( "A Car!" );
I haven't even checked the headers, but is reflection really within the extension namespace? IMHO, that doesn't make sense (and does not reflect the header naming hierarchy either). / Johan

Well, I took the code from the documentation. I will check if it's correct. Christian On 10/31/07, Johan Nilsson <r.johan.nilsson@gmail.com> wrote:
Christian Henning wrote:
Thanks guys, that solved this problem.
Still I'm having compilation errors. I'm trying to compile the following code:
#include "car.hpp" #include <boost/extension/extension.hpp> #include <boost/reflection/reflection.hpp> #include <boost/reflection/reflector.hpp>
int _tmain(int argc, _TCHAR* argv[]) { boost::extension::reflection<car, std::string> car_reflection( "A Car!" );
I haven't even checked the headers, but is reflection really within the extension namespace? IMHO, that doesn't make sense (and does not reflect the header naming hierarchy either).
/ Johan
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Christian Henning wrote:
Well, I took the code from the documentation. I will check if it's correct.
We're really sorry. The documentation is a bit outdated now because Jeremy did some changes in the API. Surely that was the source of differences. If you still have problems, just write to me or Jeremy Pack and we'll help you. Bye! -- Mariano

"Ovanes Markarian" <om_boost@keywallet.com> wrote in message news:a83c1a380710300111m264c8222tb4e399316ba297e6@mail.gmail.com...
I think his problem is that VC++ wizard automatically uses MB-charset for wizard generated projects. I assume the lib >itself uses LoadLibrary, which expands dependent on the MB-Setting to either LoadLibraryA or LoadLibraryW.
Right-click on the project and select Properties; in the General tree node set the Character Set to 'Not Set' instead of >Multi-Byte... Than it should be fine.
Sorry, but Multi-Byte works just fine. Unicode does not (which is the default, at least under VS2005). / Johan
participants (6)
-
Christian Henning
-
Damien Hocking
-
Johan Nilsson
-
Mariano Gabriel Consoni
-
Ovanes Markarian
-
tcmichals