Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   SWIG and __int64 (http://www.velocityreviews.com/forums/t321027-swig-and-__int64.html)

Matt Whelan 08-14-2003 06:19 PM

SWIG and __int64
 
Supposedly, recent versions of SWIG can be made to work with MS VC++'s
non-standard integer data types. According to a recent SWIG ChangeLog
entry:

%apply long long { __int64 };

should make Swig happy. But it doesn't. I get Syntax Errors on each
line where __int64 appears.

Am I missing something? I'm new to SWIG (but not to Python or C++).
My searches to date have turned up no examples of successful __int64
and SWIG interaction. If anyone could provide such an example, it
would be deeply appreciated.

I also need to do similar things for __int8 * and __int32, but I
assume once I get __int64 working the solutions for those will become
obvious.

--
Matt Whelan

Lyle Johnson 08-14-2003 07:38 PM

Re: SWIG and __int64
 
Matt Whelan wrote:

> Supposedly, recent versions of SWIG can be made to work with MS VC++'s
> non-standard integer data types. According to a recent SWIG ChangeLog
> entry:
>
> %apply long long { __int64 };
>
> should make Swig happy. But it doesn't. I get Syntax Errors on each
> line where __int64 appears.


Just to clarify: are you getting errors when running SWIG (i.e. to
generate the wrapper code) or when compiling the code that SWIG
generated for you?


Matt Whelan 08-15-2003 08:40 PM

Re: SWIG and __int64
 
Lyle Johnson <lyle@users.sourceforge.net> wrote in message news:<3F3BE519.3060802@users.sourceforge.net>...
> Just to clarify: are you getting errors when running SWIG (i.e. to
> generate the wrapper code) or when compiling the code that SWIG
> generated for you?


Yes, it's in the SWIG generation step.

I think I've figured out the problem, but I still don't know what to
do about it.

All the __int?? types are specified as unsigned in my code. SWIG
works great on default-signedness types, but it throws syntax errors
on "unsigned __int64" and friends.

So here's what I've got:

----Begin Code----
test.i:
%module test_wrap
%{
#include "test.h"
%}

%apply long long { __int64 }

%include test.h

test.h:
#ifndef TEST_H
#define TEST_H

unsigned __int64 foo(); //body is {return 42;} in test.cpp

#endif
----End Code----

If I remove the unsigned qualifier, it works fine, but as it is I get
a syntax error on line 4 of test.h.

I've tried adding the unsigned qualifier to the %apply statment in all
possible ways; none of them help.

I'm beginning to suspect this is a bug in SWIG. If someone can give
me a work around (or educate me on what I'm doing wrong), I would
appreciate it.


All times are GMT. The time now is 07:04 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.