My first post sounded *way* too alarmist, I appologise. I should have chosen
my words more carefully.  the two suspects I see in the warnings are:

static int winFileHandle(OsFile *id)
{
  return (int)((winFile*)id)->h;
}

The HANDLE will be64 bit, then get trunc'd when cast (unless there is some
compiler magic afoot that I'm not aware of.)

And, in vtab.c(573)

int sqlite3VtabCommit(sqlite3 *db)
{
  callFinaliser(db, (int)(&((sqlite3_module *)0)->xCommit));
  return SQLITE_OK;
}

the explicit cast of the commit function pointer to int could be a
truncation operation (though looking deeper into this one, it looks like
that's not used as a pointer directly, but as an offset, so I could be off
base.)

Those are the only pointer truncation threats I've found, but looking
through the archives for builds on 64 bit machines, I'm still a bit fuzzy on
the effect of the Microsoft compiler on the final 64 bit build output.  It
seems that Microsoft's compiler maintains int as 32 bit, while from what I'm
reading, gcc and it's brethren compile it as 64 bit.

I'm really just looking for some guidance on 64 bit builds of SQLite on
Windows boxes (I know it runs perfectly fine in the Wow64 subsystem, but
we're trying to do a native 64 bit version of the app I'm working on, which
requires a native 64 bit build of SQLite for windows.)  If someone has tried
a build using the Microsoft 64 bit compiler, and had it work successfully,
I'd be happy to hear it.


On 1/15/07, Ian Frosst <[EMAIL PROTECTED]> wrote:

Has anyone here gotten 3.3.10 (or any subsequent version) to compile and
run successfully through Visual C++ (I'm using 2005, but again, any version
would do.)  Looking at the code, there are pointer to int truncations
everywhere, and I've found no magic bullet for declalring int's as 64 bit
(__int64 and longlong is how I normally do it.)  If there really is no way
to get VC++ to work, would it be fair to assume that I have to get a 64 bit
version of gcc, and use that to do the compilation (I've read that it will
compile int to 64 bit)?

Thanks,
Frosstoise

Reply via email to