in

System.Data.SQLite

An open source ADO.NET provider for the SQLite database engine

Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

Last post 09-13-2010 10:54 AM by bimbimin. 15 replies.
Page 1 of 2 (16 items) 1 2 Next >
Sort Posts: Previous Next
  • 08-15-2008 2:15 AM

    Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

     I'm developing an application for different Win CE devices. My application works ok on Win CE 5 device, but when moved to Win CE 6.0 I get this error.

     Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'.

     I get the same error when trying to run testce app. There is no error in emulator. I have compiled the program with different versions of System.Data.SQLite.dll file, 48,49,50,54 and 56 and none of them work. 1:1 copy from win ce5 device doesn't work, fails with this error.

     I have tried with VisualStudio 2005 and 2008.

     

    Filed under: ,
  • 08-15-2008 7:51 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Ugh that blows.

    How much memory is available on the device?  How soon after your app starts do you attempt to open the database?  I've seen this kind of error before and it can be one of three things:

    1. The device ran out of memory before loading the dll
    2. The device couldn't find a large enough contiguous block of memory to load the library.
    3. There was a load problem mapping the dll into memory, usually associated with the way the two assemblies are merged.  This was historically a problem, but shouldn't be anymore.

    Since you're seeing this with many different versions of the library, I'm thinking it's #1 or #2.  Are you using a lot of libraries?  Can you debug on the device and find out what the memory usage is before and after the point of failure?

    One more thing to try ... at the very beginning of your program before you've done anything else, do this:

    using (SQLiteConnection cnn = new SQLiteConnection("Data Source=:memory"))
    {
      cnn.Open();
    }

    This will force the libraries to get loaded right at the beginning.

  • 08-17-2008 11:33 PM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Available memory for program use is over 60MB so i would guess that's not the problem. I'm not using lots of libraries. I tried the code you gave and put it in the first possible place (main) and this is the detailed error message it gave me. This is before the first form is loaded. Memory consumption raised almost 1MB.

    System.MissingMethodException was unhandled
      Message="Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'."
      StackTrace:
        at System.Data.SQLite.SQLite3.Open()
        at System.Data.SQLite.SQLiteConnection.Open()
        at MyProject.Program.Main()

    Other errors found while this happens are:

    Changes    'cnn._sql.Changes' threw an exception of type 'System.NullReferenceException'    int {System.NullReferenceException}

    Version    'cnn._sql.Version' threw an exception of type 'System.MissingMethodException'    string {System.MissingMethodException}

     -        base    {"Can't find an Entry Point 'sqlite3_libversion' in a PInvoke DLL 'System.Data.SQLite.DLL'."}    System.MissingMemberException {System.MissingMethodException}

     -        ServerVersion    'cnn.ServerVersion' threw an exception of type 'System.InvalidOperationException'    string {System.InvalidOperationException}

  • 08-18-2008 7:40 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Ok, a few questions just to get them out of the way ... the CE6 device is ARM-based, and you're using the CE build of the SQLite library?

  • 08-18-2008 10:25 PM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Device is ARM920T running Windows CE 6.00. I use the Compact framework dll from SQLite-1.0.56.0-setup.exe.

     

  • 08-18-2008 10:37 PM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    I readily admit not knowing much about ARM processors.  The CE build was compiled as ARMV4 -- does that make any difference?

     

  • 08-18-2008 11:22 PM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

     The ARM920T should be compatible with all ARMV4 instruction sets.

     

  • 08-19-2008 12:23 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

     Well, SQLCE doesn't work on it either, so problem might lay in the device itself. I will report what I find.

     EDIT:

    SqlCe started working after I did full reset and installed some missing dll's but SQLite refuses to work.

     

  • 08-19-2008 7:42 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Sorry about that -- but you have NO IDEA how relieved I am to hear you say SqlCE isn't working either!

    Let me know how things go.

     

  • 08-19-2008 7:43 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    sigh.  Spoke too soon I guess.

    Alright, send me e-mail offline at robert at blackcastlesoft dot com and I'll send you some debug binaries.

     

  • 08-19-2008 9:59 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

     Email sent.

     

  • 08-20-2008 4:12 AM In reply to

    • svenrym
    • Top 500 Contributor
    • Joined on 08-20-2008
    • Belgium
    • Posts 4

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    I have the same issue on the emulator (Windows Mobile 6 Standard emulator); System.Data.SQLite version = 1.0.53.0.

    The testce application results in the same error message... If there's any progress I would like to know! 

    Edit: See also here.

  • 08-20-2008 8:03 AM In reply to

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Ok, svenrym, an emulator problem is definitely something that can help me.

    In your emulator, save your emulator state and send me your .dess files, which on Vista are found in :

    Users\<username>\AppData\Roaming\Microsoft\Device Emulator

    On XP it should be under

    Documents and Settings\<username>\Application Data\Microsoft\Device Emulator

    And you're using the 6.0 Standard emulator?

    e-mail me, robert at blackcastlesoft dot com

     

  • 08-21-2008 12:40 AM In reply to

    • svenrym
    • Top 500 Contributor
    • Joined on 08-20-2008
    • Belgium
    • Posts 4

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Robert,

    the dess files are 32Mb in size, I don't know if you can receive messages of that size...compressing the file is not an option, I gain about 2Mb's.

    And yes, I'm using the 6.0 standard emulator.

    Best regards,
    Sven

  • 08-21-2008 1:15 AM In reply to

    • svenrym
    • Top 500 Contributor
    • Joined on 08-20-2008
    • Belgium
    • Posts 4

    Re: Can't find an Entry Point 'sqlite3_open_interop' in a PInvoke DLL 'System.Data.SQLite.DLL'

    Update! 

    I did some more test's with the 1.0.52.0 release (because I could imagine that one was working on another machine) and yes there were no issues.
    Also the latest release (1.0.56.0), worked fine. Maybe a compile issue in 1.0.53?

    It's always nice to see that bugs solve themselves.

Page 1 of 2 (16 items) 1 2 Next >
Powered by Community Server (Commercial Edition), by Telligent Systems