C++/CLR Sqlite初探
error C2491: "acosh": 不允许 dllimport 函数 的定义
asinh": 不允许 dllimport 函数 的定义
atanh": 不允许 dllimport 函数 的定义
isblank": dll 链接不一致
先跑到http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki这个地址去下了个源码,准备编译一波,但是很悲剧的,从来没有下下来的代码能直接编译的,一个sln塞了好几个C#项目,还有两个VC项目,于是生成解决方案,没啥好说的,果断各种报错,为了避免后人掉坑,重现下错误
.
这上面只有5个错误,但是第一次下下来的错误并不止这么些,其中有一个就是缺少ADO.dll,我于是再次跑到上面那个链接去下了x86 (net4.5)的安装包,安装之后不包这个错误,只剩下了逗比的5个错误,这5个错误让我好一阵蛋疼

群里问人没人能解答,搜索了半天也没找到类型情况.唔,为了增加这篇文章被搜索到的可能(于是再文章的最前面贴了详细的错误信息),其实解决办法很简单,这些逗比函数其实都是与库函数重定义了,但是你又不能去改源代码,跳到错误的地方一看,恩,是用宏来控制着函数的定义的
于是怒之加上HAVE_ASINH等宏,把这些函数等于差不多去掉了,至于宏加载哪里吗,肯定是VC的编译选项
那个_isblank也是同理,不过由于是链接错误,也没法跳到错误的地方,尝试着搜索_isblank没有找到,对着源文件找了半天,突然想起,这逗比名字是混淆过的,最终找到,加了个HAVE_XXXX之类的宏,总算编译完成的,要是不编译怎么破,程序坐等崩溃
另外就是C++/CLR的问题,由于某个地方得用数组了,搞了半天不行,array用了半天也没用会,搞了半天还是要加个^,这个就不提了,搞得我人崩溃,还有就是SQL语句的优化问题,(结合.NET)网上的代码果然不靠谱,代码的接口到是符合人的习惯,基本都能写对,比如参数绑定,在C/C++蛋疼的搞法,到时到了.NET,简化好多,我第一次写的倒是蛮好的,可是自己不相信自己,用记事本打开存储后的db文件.以为自己操作失败了,在网上抄了一个超渣的列子….,网上那些写代码的不看文档的?
引用下文档优化前和 优化后的代码
前:
using (SQLiteCommand mycommand = new SQLiteCommand(myconnection))
{
int n;
for (n = 0; n < 100000; n ++)
{
mycommand.CommandText = String.Format("INSERT INTO [MyTable] ([MyId]) VALUES({0})", n + 1);
mycommand.ExecuteNonQuery();
}
}
后:
using (SQLiteTransaction mytransaction = myconnection.BeginTransaction())
{
using (SQLiteCommand mycommand = new SQLiteCommand(myconnection))
{
SQLiteParameter myparam = new SQLiteParameter();
int n;
mycommand.CommandText = "INSERT INTO [MyTable] ([MyId]) VALUES(?)";
mycommand.Parameters.Add(myparam);
for (n = 0; n < 100000; n ++)
{
myparam.Value = n + 1;
mycommand.ExecuteNonQuery();
}
}
mytransaction.Commit();
}
既然是初探,这文章写到这里就可以收工了,还有C++/CLR 基本上用托管类型,你只能XXX^ 然后gcnew,这个我也蛋疼了半天,因为一开始写
"" + int这样能赋值给TextLabel.text.但是sting()+string就不行,顿时就傻逼了,折腾了半天^简直就是个逗比指针,不过当然不是指针咯,当指针来用就好了
去求,完蛋玩意,还有这东西效率貌似有点低,就这样了吧~
C++/CLR Sqlite初探的更多相关文章
- FireDAC的SQLite初探
// uses FireDAC.VCLUI.Wait 之后, 可不用添加 TFDGUIxWaitCursor TFDConnection // 数据连接 TFDQuery ...
- 【转载】保哥 釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係
我常常不仅仅逛 博客园,还会去找国外,特别是台湾的技术部落格,发现好的文章,我便会收录,今天我转载或者全文复制,在Google 博客园,一位叫保哥, 釐清 CLR..NET.C#.Visual Stu ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- Unity3D游戏开发初探—3.初步了解U3D物理引擎
一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:“如果说我看得比较远的话,那是因为我站在巨人的肩膀 ...
- EntityFramework 7.0之初探【基于VS 2015】(十)
前言 本篇作为EF 7.0的开篇也是Entity Framework目前系列末篇,因为关于EF 7.0学习资料实在是太少,我都是参考老外的资料花费了不少时间去研究去尝试同时也失败多次,个人觉得那是值得 ...
- 【转】Sqlite 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该...
开发环境: vs2010+.net framework 4.0+ System.Data.SQLite.DLL (2.0)今天在做Sqlite数据库测试,一运行程序在一处方法调用时报出了一个异常 混合 ...
- CLR/.NET/C#/Visual Studio/ASP.NET各版本之间的关系(转)
由于这篇文章记录的是2015年7月,那时.net core还是叫做.net core 5 名词定义 下列这些名词,写.NET 的人一定都不陌生,但你是否有真正理解呢?如果看了我的摘要文字说明还无法理解 ...
- WCF初探-10:WCF客户端调用服务
创建WCF 服务客户端应用程序需要执行下列步骤: 获取服务终结点的服务协定.绑定以及地址信息 使用该信息创建 WCF 客户端 调用操作 关闭该 WCF 客户端对象 WCF客户端调用服务存在以下特点: ...
- SQLite入门与分析(七)---浅谈SQLite的虚拟机
写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久.最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与 ...
随机推荐
- 树形DP+树状数组 HDU 5877 Weak Pair
//树形DP+树状数组 HDU 5877 Weak Pair // 思路:用树状数组每次加k/a[i],每个节点ans+=Sum(a[i]) 表示每次加大于等于a[i]的值 // 这道题要离散化 #i ...
- PageRank与社交网络模型评估
SNS社交网络在近几年流行起来,并呈现出火爆的增长趋势.在仿制国外Facebook.twitter等成功先例的基础上,国内的人人网.新浪微博等一系列社交网络正风生水起. 这些社交网站表面上看起来十分普 ...
- tomcat http https
Tomcat如何既支持http又支持https?在server.xml中开启两个connector: http: <Connector port="8080" maxHttp ...
- 第二百六十天 how can I 坚持
晚上去看了个电影,<万万没想到>,挺好看的,豆瓣评分不高.网络啊. 互联网会让聪明的人越来越聪明. 明天去看寻龙诀了. 懒惰会生根发芽,哈哈. 睡觉了.
- Android问题-打开DelphiXE8与DelphiXE10新建一个空工程提示"out of memory"
错误信息: [DCC Error] E2597 d:\XE8\Embarcadero\Studio\16.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-l ...
- codeforces 629BFar Relative’s Problem
B. Far Relative’s Problem time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- 微信小程序正式上线 可置于聊天窗口顶部
历经一年的等待后,小程序在2017年1月9日凌晨终于揭开神秘面纱,正式上线. 微信小程序推广海报 随着小程序正式上线,用户现在可以通过二维码.搜索等方式体验到开发者们开发的小程序了. 用户只要将微信更 ...
- Unity3D之Mecanim动画系统学习笔记(二):模型导入
我们要在Unity3D中使用上模型和动画,需要经过下面几个阶段的制作,下面以一个人形的模型开发为准来介绍. 模型制作 模型建模(Modelling) 我们的美术在建模时一般会制作一个称为T-Pose( ...
- lua入门
print("hello lua") lua官网 在线运行代码 数据类型 数据类型 描述 number 数字,可当作double,5/2 == 2.5 string 字符串 nil ...
- contiki-main.c 一 打印观察 <contiki学习之五>
说明: 本文依赖于 contiki/platform/native/contiki-main.c 文件. 在项目工程目录下的hello-world.c 文件里面,有许多的宏,但没有最关键的main() ...