Hello Joachim,

If you run it in the debugger, break it then look at the loaded
modules. That'll tell you if the Sqlite dll got loaded somehow. I'd
suspect some other part of the program might be loading the DLL
manually and hooking the function calls. You could load DLL through
ordinals (basically the function index in the DLL) and not have any
Sqlite related strings in the EXE. I tend to load my own DLL's through
ordinals.

If you see nothing, I might stick an Sqlite dll in the program folder
and then run a second time and check again. Maybe something is trying
to be smart and load the DLL when available but failing that, falling
back on using internal static linked.

How large is the .lib you're loading?

My release build, 32 bit Sqlite lib is 2.1 megs.
Release build 64 bits is 2.7 Megs

C

Thursday, January 23, 2014, 10:38:10 AM, you wrote:

JB> Hello Simon,

JB> thank you for your fast response.

>> On 23 Jan 2014, at 1:58pm, Joachim Bürmann <jbuerm...@iftools.com> wrote:
>> 
>> > On a certain customer system (Windows7 64bit) the application cannot
>> > read the example project files (created with sqlite3.6 library). And
>> > when the user stores his own settings in a new project, the project file
>> > is saved as a version 2.1 file (** This file contains an SQLite 2.1
>> > database...) instead of a sqlite3 compatible file (SQLite format 3...)
>> 
>> The calls to anything that can make a version 2.1 file have different names. 
>>  It can't just be a case of calling the wrong 'sqlite_open()' function 
>> because the function is actually called 'sqlite3_open()' with the '3' right 
>> there in the name.
>> 
>> > But because the sqlite functionality is part of the application (static
>> > linked), the program should never able to access an external sqlite DLL.
>> 
>>
>> I don't think that that logic is correct.  Can you run 'strings' (or 
>> whatever the Windows7 equivalent is) on the compiled file and see whether 
>> there are any mentions of 'sqlite2' ?  Is there a debugging tool which will 
>> list the names of all routines which are called ?  Ignore whether it is 
>> internal or external, just look at the routine names.
>> 

JB> ok, my wording could missunderstand. Of course, also a statically linked
JB> program can open a shared lib to access function from that. But our
JB> application doesn't do that - not for sqlite. I only thought, that
JB> accessing an external sqlite DLL could cause such a behaviour. But with
JB> different names - as you mentioned - it's hard to believe that a older
JB> DLL is the reason.

JB> I don't know 'strings' for windows. I tried it with dumpbin (outputs all
JB> dependencies and imports) and wintrc (similar to strace) and didn't find
JB> any sqlite access (neither a function nor a library/dll open call with
JB> sqlite in its name). That's why I'm so confused.

>> I suspect that that particular customer computer has something weird loaded.

JB> yes, I suppose that there is something different in that computer. More
JB> than this: The customer told me, that he can reproduce the effect on
JB> another notebook. So I think it isn't a matter of the OS but of some
JB> other application he runs on both computers.

JB> Anyway, thanks a lot for your response

JB> Best regards

JB> Joachim

>> 
>> Simon.
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


JB> _______________________________________________
JB> sqlite-users mailing list
JB> sqlite-users@sqlite.org
JB> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users



-- 
Best regards,
 Teg                            mailto:t...@djii.com

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to