[C++-sig] PhysX3.x Wrapping Problems
Peter Armbrüster
arm at rfh-koeln.de
Thu Jan 30 16:28:59 CET 2014
Hi Nicolay,
thanks for your Tip.
I tested this, but same Error.
I think that is the biggest sh... Error in my live.
Maybe I would better become a musician. :-)
Best Regards
Peter
-----Ursprüngliche Nachricht-----
Von: Cplusplus-sig
[mailto:cplusplus-sig-bounces+arm=rfh-koeln.de at python.org] Im Auftrag von
cplusplus-sig-request at python.org
Gesendet: Mittwoch, 29. Januar 2014 16:22
An: cplusplus-sig at python.org
Betreff: Cplusplus-sig Digest, Vol 64, Issue 12
Send Cplusplus-sig mailing list submissions to
cplusplus-sig at python.org
To subscribe or unsubscribe via the World Wide Web, visit
https://mail.python.org/mailman/listinfo/cplusplus-sig
or, via email, send a message with subject or body 'help' to
cplusplus-sig-request at python.org
You can reach the person managing the list at
cplusplus-sig-owner at python.org
When replying, please edit your Subject line so it is more specific than
"Re: Contents of Cplusplus-sig digest..."
Today's Topics:
1. Re: Cplusplus-sig Digest, Vol 64, Issue 11 (Peter Armbr?ster)
2. Re: PhysX3.x Wrapping Problems (Nikolay Mladenov)
----------------------------------------------------------------------
Message: 1
Date: Wed, 29 Jan 2014 12:26:18 +0100
From: Peter Armbr?ster <arm at rfh-koeln.de>
To: <cplusplus-sig at python.org>
Subject: Re: [C++-sig] Cplusplus-sig Digest, Vol 64, Issue 11
Message-ID: <03d701cf1ce4$ee69dc30$cb3d9490$@rfh-koeln.de>
Content-Type: text/plain; charset="iso-8859-1"
Hi Niki and Giuseppe,
thanks for your answers, but once I had already considered .
My compiler flags are: /DWIN32 /DDEBUG /GR /RTCsu /DPX_DEBUG
I wish you a nice day.
Peter
-----Urspr?ngliche Nachricht-----
Von: Cplusplus-sig
[mailto:cplusplus-sig-bounces+arm=rfh-koeln.de at python.org] Im Auftrag von
cplusplus-sig-request at python.org
Gesendet: Mittwoch, 29. Januar 2014 12:00
An: cplusplus-sig at python.org
Betreff: Cplusplus-sig Digest, Vol 64, Issue 11
Send Cplusplus-sig mailing list submissions to
cplusplus-sig at python.org
To subscribe or unsubscribe via the World Wide Web, visit
https://mail.python.org/mailman/listinfo/cplusplus-sig
or, via email, send a message with subject or body 'help' to
cplusplus-sig-request at python.org
You can reach the person managing the list at
cplusplus-sig-owner at python.org
When replying, please edit your Subject line so it is more specific than
"Re: Contents of Cplusplus-sig digest..."
Today's Topics:
1. Re: PhysX3.x Wrapping Problems (niki)
2. Re: PhysX3.x Wrapping Problems (Giuseppe Corbelli)
----------------------------------------------------------------------
Message: 1
Date: Wed, 29 Jan 2014 10:19:59 +0200
From: niki <niki at vintech.bg>
To: Development of Python/C++ integration <cplusplus-sig at python.org>
Subject: Re: [C++-sig] PhysX3.x Wrapping Problems
Message-ID: <52E8B9AF.4050602 at vintech.bg>
Content-Type: text/plain; charset=UTF-8; format=flowed
On 28.01.2014 18:33, Peter Armbr?ster wrote:
> Dear Boost.python, C++ and Py++ Experts,
>
> this is my first post in your excellent Forum.
>
> I have chosen as the wrapper software the boost.python/Py++ Packageto
> write a physx 3.x Wrapper, because I think it is the best.
>
> Many many thanks to David Abrahams and Roman Yakovenko for the great
Tools.
>
> The wrapping of old versions physx 2.x had made no problems.
>
> And now I come across a very big problem at the 3.x Versions.
>
> All wrappings of classes works very well.
>
> The problem only exists in the PhysX free functions, which are
> responsible for the initialization of PhysX.
>
> I try to explain with a reduced Example.
>
> The initialization of PhysX starts with create of foundation :
>
> *0 static*PxFoundation*mFoundation=NULL;
>
> *1 static*PxDefaultErrorCallbackgDefaultErrorCallback;
> *2 static*PxDefaultAllocatorgDefaultAllocatorCallback;
> 3
> mFoundation=PxCreateFoundation(PX_PHYSICS_VERSION,gDefaultAllocatorCal
> lback,gDefaultErrorCallback);4
> *4 if*(!mFoundation)
>
> 5 fatalError("PxCreateFoundation failed!");
>
> The wrapped python program generate a runtime error at line
> 3:RuntimeError: Access violation - no RTTI data!
Just wild guess: add compiler option to enable RTTI
HTH
Niki
------------------------------
Message: 2
Date: Wed, 29 Jan 2014 11:03:00 +0100
From: Giuseppe Corbelli <giuseppe.corbelli at copanitalia.com>
To: Development of Python/C++ integration <cplusplus-sig at python.org>
Subject: Re: [C++-sig] PhysX3.x Wrapping Problems
Message-ID: <52E8D1D4.7060003 at copanitalia.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 28/01/2014 17:33, Peter Armbr?ster wrote:
> Dear Boost.python, C++ and Py++ Experts,
>
> this is my first post in your excellent Forum.
>
> I have chosen as the wrapper software the boost.python/Py++ Packageto
> write a physx 3.x Wrapper, because I think it is the best.
>
> Many many thanks to David Abrahams and Roman Yakovenko for the great
Tools.
>
> The wrapping of old versions physx 2.x had made no problems.
>
> And now I come across a very big problem at the 3.x Versions.
>
> All wrappings of classes works very well.
>
> The problem only exists in the PhysX free functions, which are
> responsible for the initialization of PhysX.
>
> I try to explain with a reduced Example.
>
> The initialization of PhysX starts with create of foundation :
>
> *0 static*PxFoundation*mFoundation=NULL;
>
> *1 static*PxDefaultErrorCallbackgDefaultErrorCallback;
> *2 static*PxDefaultAllocatorgDefaultAllocatorCallback;
> 3
> mFoundation=PxCreateFoundation(PX_PHYSICS_VERSION,gDefaultAllocatorCal
> lback,gDefaultErrorCallback);4
> *4 if*(!mFoundation)
>
> 5 fatalError("PxCreateFoundation failed!");
>
> The wrapped python program generate a runtime error at line
3:RuntimeError:
> Access violation - no RTTI data!
>
> Its impossible to get mFoundation.
>
> *Notes: *
>
> - physx comes as SDK: only Headers, libs and dlls.
Before reading on I'd investigate the "no RTTI data" message.
Make sure you're using the /GR compiler option.
--
Giuseppe Corbelli
WASP Software Engineer, Copan Italia S.p.A
Phone: +390303666318 Fax: +390302659932
E-mail: giuseppe.corbelli at copanitalia.com
------------------------------
Subject: Digest Footer
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig at python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig
------------------------------
End of Cplusplus-sig Digest, Vol 64, Issue 11
*********************************************
------------------------------
Message: 2
Date: Wed, 29 Jan 2014 10:21:50 -0500
From: Nikolay Mladenov <nikolay.mladenov at gmail.com>
To: "Development of Python/C++ integration" <cplusplus-sig at python.org>
Subject: Re: [C++-sig] PhysX3.x Wrapping Problems
Message-ID:
<CACbdn-J9sPWzS4cVqB9BPnJ5A=ecz__c2qnbFoQzRtj=F0O2mw at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Recently I had such symptom - it went away when I turned "Whole Program
Optimization" off
On Tue, Jan 28, 2014 at 11:33 AM, Peter Armbr?ster <arm at rfh-koeln.de> wrote:
> Dear Boost.python, C++ and Py++ Experts,
>
>
>
> this is my first post in your excellent Forum.
>
>
>
> I have chosen as the wrapper software the boost.python/Py++ Package to
> write a physx 3.x Wrapper, because I think it is the best.
>
> Many many thanks to David Abrahams and Roman Yakovenko for the great
Tools.
>
>
>
> The wrapping of old versions physx 2.x had made no problems.
>
> And now I come across a very big problem at the 3.x Versions.
>
> All wrappings of classes works very well.
>
> The problem only exists in the PhysX free functions, which are
> responsible for the initialization of PhysX.
>
>
>
> I try to explain with a reduced Example.
>
> The initialization of PhysX starts with create of foundation :
>
>
>
> *0 static* PxFoundation *mFoundation = NULL;
>
> *1 static* PxDefaultErrorCallback gDefaultErrorCallback;
> *2 static* PxDefaultAllocator gDefaultAllocatorCallback;
> 3 mFoundation = PxCreateFoundation(PX_PHYSICS_VERSION,
> gDefaultAllocatorCallback, gDefaultErrorCallback); 4
> *4 if*(!mFoundation)
>
> 5 fatalError("PxCreateFoundation failed!");
>
>
>
> The wrapped python program generate a runtime error at line
3:RuntimeError: Access violation - no RTTI data!
>
> Its impossible to get mFoundation.
>
>
>
>
>
>
>
> *Notes: *
>
> - physx comes as SDK: only Headers, libs and dlls.
>
> - PxFoundation is a Abstract class:
>
>
>
> *class* PX_FOUNDATION_API PxFoundation {
> *public*:
> *virtual* *void* release() = 0;
> *virtual* PxErrorCallback& getErrorCallback() *const* = 0;
> *virtual* *void* setErrorLevel(PxErrorCode::Enum mask =
> PxErrorCode::eMASK_ALL) = 0;
> *virtual* PxErrorCode::Enum getErrorLevel() *const* = 0;
> *virtual* PxBroadcastingAllocator& getAllocator() *const* = 0;
> *virtual* PxAllocatorCallback& getAllocatorCallback() *const* = 0;
> *virtual* *bool* getReportAllocationNames() *const* = 0;
> *virtual* *void* setReportAllocationNames(*bool* value) = 0;
>
> *virtual* ~PxFoundation() {}
> };
>
>
>
> - The wrapping of PxFoundation makes no problem.
>
>
>
>
>
> To make sure that I made no mistake with the initialization of PhysX,
> I tried a different solution.
>
> A small function InitPhysX create the foundation, and GetFoundation
> get this.
>
>
>
> C++ Code:
>
>
> *using* *namespace* physx;
>
> PxU32 PHYSICS_VERSION = PX_PHYSICS_VERSION;
> *static* PxFoundation *mFoundation = NULL;
> *static* PxDefaultErrorCallback gDefaultErrorCallback;
> *static* PxDefaultAllocator gDefaultAllocatorCallback;
>
>
> PxFoundation* GetFoundation(){
> *return* mFoundation;
> }
>
> *void* InitPhysX() {
> mFoundation = PxCreateFoundation(
> PX_PHYSICS_VERSION,
> gDefaultAllocatorCallback,
> gDefaultErrorCallback);
>
> *if*(!mFoundation)
> printf("ERROR: PxCreateFoundation failed!\n");
>
>
> *else* printf("PxCreateFoundation created!\n");
> }
>
>
>
> The wrapped python program:
>
>
>
> 1 import _physx324_d as PX
>
> 2 PX.InitPhysX()
>
> 3 foundation = PX.GetFoundation()
>
>
>
> I get on line 2 the message: "PxCreateFoundation created!"
> => OK!
>
>
>
> On Line 3 the same error RuntimeError: Access violation - no RTTI data!
>
>
>
> Now i check the wrappings of PxCreateFoundation in
> _physx324_d_free_functions.pypp.cpp
>
>
>
> void register_free_functions(){
>
> . . .
>
>
>
> { //::GetFoundation
>
> typedef ::physx::PxFoundation * ( *GetFoundation_function_type
> )( );
>
> bp::def(
> "GetFoundation"
> , GetFoundation_function_type( &::GetFoundation )
> , bp::return_value_policy< bp::reference_existing_object
> >() );
>
> }
>
>
>
> . . .
>
>
>
>
>
> I think: return_value_policy< bp::reference_existing_object > thats
> right!?
>
>
>
> Then a debug session with PTVS, start with a break point in InitPhysX
>
> and inspect the mFoundation after the successful generation.
>
> Its a vptr with 9 Entries => thats right, PxFoundation has 9 Methods.
>
> That's all what I can see, because I have no source code and no pdb
> (symbols).
>
>
>
> I place the next Breakpoint in
>
> PxFoundation* GetFoundation(){
> *return* mFoundation;
> }
>
>
>
> to search the Error location.
>
>
>
> Then followed a trace trip through the code, for me is a journey
> through an unreadable jungles of wrapper C + + code.
>
> Unfortunately, I am not an C++Expert.
>
> The Error is not to find for me.
>
>
>
>
>
> The same problem occurs with PxCreatePhysics.
>
>
>
> My work enviroment:
>
> ? Windows 7 x64
>
> ? Python 2.7
>
> ? physxVersion 3.24 (i try: 3.01, 3.23, 3.3, same problem)
>
> ? visualStudioVersion 11 (i try: VS 9 and VS 10, same problem)
>
> ? PythonTools for Visual Studio (PTVS)
>
> ? Boost 1.55 (i try: 1.45, same problem)
>
> ? gccxml 0.9
>
> ? pyplusplus 1.0 svn 1.5.1
>
> ? pygccxml 1.0 svn 1.5.1
>
>
>
>
>
>
>
> What is my mistake?
>
> I would be very grateful if someone could an expert help.
>
> Thanks for your response.
>
>
>
> Peter Armold
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig at python.org
> https://mail.python.org/mailman/listinfo/cplusplus-sig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.python.org/pipermail/cplusplus-sig/attachments/20140129/35d6f14
8/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig at python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig
------------------------------
End of Cplusplus-sig Digest, Vol 64, Issue 12
*********************************************
More information about the Cplusplus-sig
mailing list