c# - 从源代码编译SQLite时如何修复 "cannot find entry point sqlite3_open_v2 in DLL sqlite3"?

标签 c# .net c sqlite

我正在尝试从源代码(合并)编译 sqlite 以从 C# 中使用它。自己编译而不是使用预编译版本的原因是我需要 JSON 支持,默认情况下不包含该支持。我是这样编译的:

cl sqlite3.c -DSQLITE_ENABLE_JSON1 -link -dll -out:sqlite3.dll

然后,我尝试将应用程序中预编译的 sqlite3.dll 版本替换为我自己编译的版本,结果我的 C# 应用程序开始崩溃并出现 EntryPointNotFoundException。

如何解决这个问题,编译 SQLite 的正确方法是什么?

最佳答案

解决方案是导出API函数:

cl sqlite3.c -DSQLITE_API=__declspec(dllexport) -link -dll -out:sqlite3.dll

关于c# - 从源代码编译SQLite时如何修复 "cannot find entry point sqlite3_open_v2 in DLL sqlite3"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785127/

相关文章:

c# - 重启/重启 UWP 应用

计算 C 中整数输入的个数

c++ - 是否在特定实现上定义了两个数组之间的指针差异?

c# - 异步循环等待完成再继续

.net - 如何以编程方式使 ListView 的列自动调整大小?

c# - 如何在 C# 表达式中设置参数

c - 'Table1' 未声明(在此函数中首次使用)

c# - 已插入但尚未提交的记录的查询上下文

c# - 从单元格值中获取列号,openxml

c# - int.Parse,输入字符串的格式不正确