VS2008打开SQLite数据库时出错无法找到 PInvoke DLL“SQLite.Interop.DLL”。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2008打开SQLite数据库时出错无法找到 PInvoke DLL“SQLite.Interop.DLL”。相关的知识,希望对你有一定的参考价值。

用VS2008做的Mobile5智能设备项目在cn.Open();打开一个SQLite数据库时报错:无法找到 PInvoke DLL“SQLite.Interop.DLL”。连接数据库的代码如下
SQLiteConnection cn = new SQLiteConnection("data source=C:'\'sqlite'\'SQLiteDB;Pooling = true;FailIfMissing = false");
cn.Open();

用的什么语言。给你一段c++代码。
extern "C"

#include "sqlite3.h"
;

sqlite3 * db = NULL; //声明sqlite关键结构指针
int result;
//打开数据库
//需要传入 db 这个指针的指针,因为 sqlite3_open 函数要为这个指针分配内存,还要
让db指针指向这个内存区
result = sqlite3_open( “c:\\\\Dcg_database.db”, &db );
if( result != SQLITE_OK )//数据库打开失败

return -1;
参考技术A dll、exe系统文件、网游文件,丢失、损坏、找不到等问题,可以使用可牛免费杀毒系统急救箱进行彻底修复。

VS2015 中任何和所有 C++ 项目的“打开 SDF 文件时出错”

【中文标题】VS2015 中任何和所有 C++ 项目的“打开 SDF 文件时出错”【英文标题】:"Error Opening SDF File" For Any and All C++ Projects in VS2015 【发布时间】:2015-11-29 07:31:16 【问题描述】:

我在 VS2015 中创建或打开的任何 C++ 项目,我都会收到此错误:

创建或打开 C++ 浏览数据库文件 WHATEVER.sdf 时出错。 IntelliSense 和浏览信息将不适用于 C++ 项目。

确保已安装 Microsoft SQL Server Compact 4.0,并且没有其他应用程序正在访问该文件。如果此问题仍然存在,请删除文件并重新打开解决方案。

这意味着没有 IntelliSense 等,这是我首先使用 Visual Studio 的一半原因。我在 Windows 8.1 上使用 Visual Studio 2015 企业版,这发生在 所有 C++ 项目中。 SDF 文件实际上并没有被创建,因此没有要删除的文件。

到目前为止我已经尝试过什么;没有任何影响:

确保实际安装了 SQL Server Compact 4.0(确实安装了。)版本是 4.0sp1,无论如何我尝试用 4.0 替换它,但它告诉我已经存在更新的版本,无需执行任何操作。李> 以提升的(管理员)权限运行 VS。 在不同目录中创建项目(例如,在默认的 VS 项目路径下、在驱动器的根目录下、在另一个驱动器上、在其中没有空格的路径上等) 修复 Visual Studio 安装(两次)。 使用 SDF 文件的“后备位置”(在工具->选项->文本编辑器->C/C++->高级->后备位置下)效果完全相同。

使用/Log 命令行选项运行 VS (devenv.exe) 并打开一个项目然后关闭 VS 给了我一个 600KB+ 的 XML 文件,我无法阅读,粗略搜索后发现没有可疑条目。

任何提示/建议/解决方案?

【问题讨论】:

【参考方案1】:

我自己刚刚在安装了 Visual Studio 2015 Update 1 的 Windows 10 上遇到了这个问题。

下载 SQL Server Compact 4.0 SP1 安装程序并修复安装,似乎很好地纠正了这种情况。

https://www.microsoft.com/en-gb/download/details.aspx?id=30709

【讨论】:

在这里操作。我实际上无权访问那个特定的系统 ATM。也许我可以在接下来的几周内检查一下。谢谢。 谢谢。非常好;)【参考方案2】:

我刚刚在 Virtual Box 下运行 Windows 7 Professional 32 位 SP1(完全更新)上的 Visual Studio Professional 2012 Update 5 与此问题(OP 中的消息,并且 Intellisense 完全禁用)进行了一场小规模战争5.2.8(主机操作系统为Windows 10 Pro 64位,全面更新。)

我尝试了所有方法,包括上面 Jake Hendy 建议的解决方案 - 没有任何帮助。我什至尝试完全强制卸载,然后重新安装整个 Visual Studio。

当我回忆起几个月前我保存了 VM 的快照时,我发现了一条线索,当时一切正常 - 我尝试恢复到该快照,但问题仍然存在!这让我怀疑可能不是操作系统或安装/运行在其中的软件本身,而是实际上以某种方式导致问题的管理程序:我最近从 5.2.6 升级到了 Virtual Box 5.2.8。所以我重新下载并重新安装了 Virtual Box 5.2.6(在预先存在的 5.2.8 安装之上,基本上是替换它)——问题确实消失了!

因此,对于在 VM 内的旧版操作系统上运行旧版开发环境的任何人 - 如果您遇到此类问题,请考虑您的管理程序最近发生了哪些更新。显然,SQL Server Compact 4.0 SP1 在幕后做了一些相当挑剔或超级“高级”的事情,并且可以被操作环境深处的晦涩(可能与安全相关?)更改巧妙地破坏。一个应用程序是如何被这样的虚拟机管理程序更改破坏的,这有点令人震惊 - 而其他一切似乎仍然可以正常工作......

无论如何,这是我的特殊(诚然,相当极端的情况)问题和解决方案 - 虽然不太可能,但我希望这可以帮助处于类似情况的其他人。

【讨论】:

在这里操作。哇!这太有趣了。就我而言,我在实际硬件上运行,所以没有管理程序。但是感谢您发布答案。它可能会帮助一些可怜的灵魂......【参考方案3】:

在我的情况下,我遇到了 VS2017 的问题。原来我有一个非法的后备位置

Options > Text Editor > C/C++- > Advanced > Section Fallback Location

这不起作用:D:\\IPCH_fallback\\

这可行:D:\\IPCH_fallback

Always Use Fallback LocationDo Not Warn If Fallback Location Used 都是 True

一些懒惰的编程女巫或巫师在不检查的情况下添加了另一个\\,多年的不适。

【讨论】:

以上是关于VS2008打开SQLite数据库时出错无法找到 PInvoke DLL“SQLite.Interop.DLL”。的主要内容,如果未能解决你的问题,请参考以下文章

VS2008 "无法找到资源编译器dll 请确保路径正确"

无法在 Visual Studio 2008 中打开项目

C++:FMC 错误

VS2008 VC++/MFC 出错LNK2001与1120

在 C# VS2008 项目中使用 sqlite 的数据访问方法?

我从网上下载了一个用vs2008编写的代码,用vs2008打开时出现了这个错误该怎么办