By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,143 Members | 1,919 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,143 IT Pros & Developers. It's quick & easy.

SWIG and __int64

P: n/a
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
Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
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?

Jul 18 '05 #2

P: n/a
Lyle Johnson <ly**@users.sourceforge.net> wrote in message news:<3F**************@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.
Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.