VS2010_C++_WinForm下 sqlite3.dll 如何连接?
想做一个图形界面的小软件,用的sqlite数据库。用的sqlite的dll文件,sqlite3.dll,也导出了sqlite3.lib。
项目分为多个部分,实为两类——控制台程序 和 Windows窗体应用程序。再控制台程序中,用了#pragma comment(lib,"XXX.lib")的方法,dll的调用很顺利。可在窗体程序中,调试出错。
错误信息如下:
1>系统设置.obj : warning LNK4248: 无法解析 typeref 标记(01000019)(为“sqlite3”);映像可能无法运行
1>系统设置.obj : error LNK2028: 无法解析的标记(0A00000C) "extern "C" int __clrcall sqlite3_open(char const *,struct sqlite3 * *)" (?sqlite3_open@@$$J0YMHPBDPAPAUsqlite3@@@Z),该标记在函数 "void __clrcall test(void)" (?test@@$$FYMXXZ) 中被引用
1>系统设置.obj : error LNK2019: 无法解析的外部符号 "extern "C" int __clrcall sqlite3_open(char const *,struct sqlite3 * *)" (?sqlite3_open@@$$J0YMHPBDPAPAUsqlite3@@@Z),该符号在函数 "void __clrcall test(void)" (?test@@$$FYMXXZ) 中被引用
1>C:\Users\……\系统设置.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>
1>生成失败。
控制台程序部分,如下(调试成功):

#include "stdafx.h"
#include "stdlib.h"
extern "C"{
#include "./sqlite3.h"
}
#pragma comment(lib,"../lib/sqlite3.lib")
int _tmain(int argc, _TCHAR* argv[])
{
sqlite3 * db = NULL;
char * errmsg = NULL;
char * sql;
int result;
/*打开数据库,若无则创建之*/
result = sqlite3_open("../Data/MSTR.db", &db);
if(result != SQLITE_OK){
printf("数据库连接失败...");
system("pause");
return -1;
}
/* 创建各种数据表*/
sqlite3_close(db);
return 0;
}Windows窗体程序部分,如下(调试失败):

#include "stdafx.h"
#include "stdlib.h"
extern "C"{
#include "./sqlite3.h"
}
#pragma comment(lib, "../lib/sqlite3.lib")
using namespace 系统设置;
void test();
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
//连接数据库
test();
// 在创建任何控件之前启用 Windows XP 可视化效果
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// 创建Login窗口并运行它
Application::Run(gcnew Login());
return 0;
}
void test(){
sqlite3 * db = NULL;
sqlite3_open("../Data/MSTR.db", &db);
/* 建表 或 查询 */
}也试过在连接器->输入->附加依赖项 中加入lib,同样报错。
不知道问题出在哪里和如何解决,求大神解答。
谢谢~
相关推荐
电工复审模拟考试系统(成品)
因今年复审改革,改用网上学习的方式,但是服务器太差,经常联不上,帮把题库收集下来,自已做一个软件来练习,内附收集好的题库,仅收集高低压,其它工种如焊工,钳工之类的需要请联系我
System.Runtime.InteropServices.COMException的解决方法
完美解决“换另一台电脑上用VS2008继续开发web项目时出现 “System.Runtime.InteropServices.COMException”,然后是加载不了项目。” 只需要打开项目配置文件*.csproj,将True 改为 False,然后可以正常加载项目,接着重新配置为正常的IIS. 您可能感兴趣的文章:System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 登录失败。System.Data.SQLite 数据库详细介绍SQL Server出现Syst
弱电网下光伏并网逆变器序阻抗建模仿真复现扫频法【序阻抗判断稳定性】
内容概要:本文聚焦于弱电网条件下光伏并网逆变器的序阻抗建模与稳定性分析,系统阐述了基于扫频法的阻抗特性仿真与复现方法。通过构建正负序阻抗模型,深入剖析逆变器在弱电网环境中的动态响应特性,结合锁相环、电流环等关键控制环节对系统阻抗的影响机制,采用序阻抗稳定性判据评估多机并网或复杂电网条件下的系统稳定裕度。研究在Simulink平台中实现激励信号注入、频率响应采集与阻抗曲线绘制,为高比例新能源接入背景下并网系统的稳定性分析提供了可靠的仿真手段与理论支撑,尤其适用于SCI级别论文成果的复现与拓展验证。; 适合人群:电力电子、新能源并网技术及相关领域的硕士/博士研究生、科研人员,以及从事光伏逆变器、微电网稳定控制开发的工程技术人员。; 使用场景及目标:①掌握扫频法在电力电子装置阻抗建模中的具体实施流程;②理解并应用基于序阻抗的稳定性判据进行系统稳定边界分析;③用于高水平学术论文(如SCI期刊)中阻抗建模与稳定性分析部分的仿真复现与方法验证; 阅读建议:建议读者结合文中所述方法与提供的参考文献,自主搭建Simulink仿真模型,逐步完成扰动信号设计、数据采集、傅里叶分析及阻抗拟合全过程,深入探究控制参数变化对系统阻抗特性和稳定性的具体影响,强化理论与实践的融合能力。
三相并网逆变器虚拟阻抗+统一有源阻尼策略SVPWM+SPWM调制仿真
内容概要:本文档系统性地介绍了三相并网逆变器的核心控制技术及其在复杂电网环境下的仿真应用,重点涵盖虚拟阻抗与统一有源阻尼策略在SVPWM和SPWM调制方式下的实现方法,旨在提升逆变器的稳定性与电能质量。内容包括无功功率扰动孤岛检测、中点电位平衡控制、低电压穿越(LVRT)、模型预测控制(MPC)、正负序分离、电网前馈控制等关键技术,并扩展至风储联合调频、微电网下垂控制、虚拟同步发电机(VSG)、构网型逆变器等多种典型电力系统应用场景。所有技术均配有基于Simulink/Matlab平台的完整仿真模型、参考文献及说明文档,强调理论分析与仿真实践的深度融合,突出科研中“借力”与创新思维的重要性。; 适合人群:电气工程、自动化、新能源等相关专业的研究生、科研人员及从事电力电子与可再生能源系统开发的工程师;具备MATLAB/Simulink仿真基础和电力系统专业知识的技术人员。; 使用场景及目标:①开展三相并网逆变器控制策略的研究与优化设计;②复现高水平学术论文中的控制算法;③完成毕业课题、科研项目或工程仿真验证;④掌握虚拟阻抗、有源阻尼、SVPWM/SPWM调制、MPC、VSG等核心技术的建模与实现方法;⑤支撑微电网、构网型变流器等前沿方向的科研攻关。; 阅读建议:建议按照资源目录结构化学习,优先选择与自身研究方向契合的内容模块,结合提供的仿真模型、参考文献和说明材料进行实操演练,注重从理论推导到仿真实现的全过程理解,充分利用共享网盘资源深化技术掌握,提升科研效率与创新能力。
chromedriver-win32-159.0.8133.0(Canary).zip
chromedriver-win32-159.0.8133.0(Canary).zip


工具平台和程序库
