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语言的出现,它与 ...
随机推荐
- 发布 asp.net网站 到本地IIS
http://blog.csdn.net/jiben2qingshan/article/details/9249139 概述 网站是由一个个页面组成的,是万维网具体的变现形式,关于万维网,网页的方面的 ...
- [Hive - LanguageManual] Hive Concurrency Model (待)
Hive Concurrency Model Hive Concurrency Model Use Cases Turn Off Concurrency Debugging Configuration ...
- mvn deploy 报错:Return code is: 400, ReasonPhrase: Bad Request. ->
mvn deploy 报错:Return code is: 400, ReasonPhrase: Bad Request. -> TEST通过没有报错,但是最终部署到Nexus中时出现错误. 后 ...
- Java8新特性 1——利用流和Lambda表达式操作集合
Java8中可以用简洁的代码来操作集合,比如List,Map,他们的实现ArrayList.以此来实现Java8的充分利用CPU的目标. 流和Lambda表达式都是Java8中的新特性.流可以实现对集 ...
- RabbitMQ (五)主题(Topic) -摘自网络
虽然使用direct类型改良了我们的系统,但是仍然存在一些局限性:它不能够基于多重条件进行路由选择. 在我们的日志系统中,我们有可能希望不仅根据日志的级别而且想根据日志的来源进行订阅.这个概念类似un ...
- Shell字符串使用十进制转换
其实不知道该起什么题目. 先说下需求,线上的log是按照五分钟为粒度切分的,即每五分钟产生一个文件,19:04的log写入到 1900结尾的log文件中,19:05写入到1905结尾的log文件中. ...
- 问题-Delphi2007编译时提示内存错误“sxs.dll. No Debug Info.ACCESS 0xXXXXX"
相关资料:http://bbs.csdn.net/topics/340132341 问题现象:在调试程序时,未进工程文件中的TApplication.Run;证明不是代码问题. 问题原因:可能是因为* ...
- POJ 1679 The Unique MST (次小生成树)
题目链接:http://poj.org/problem?id=1679 有t组数据,给你n个点,m条边,求是否存在相同权值的最小生成树(次小生成树的权值大小等于最小生成树). 先求出最小生成树的大小, ...
- HDU 2050 折线分割平面 (递推)
题意:略. 析:多写几个就找到规律了,第1条是2,2条时是7个,3条时是16,4条时是29,.... 那么规律就出来了2 * n * n + 1 - n; 也可以递推,第n条折线的两条边都与前n-1条 ...
- C#中垃圾回收与内存管理机制
今天抽空来讨论一下.Net的垃圾回收与内存管理机制,也算是完成上个<WCF分布式开发必备知识>系列后的一次休息吧.以前被别人面试的时候问过我GC工作原理的问题,我现在面试新人的时候偶尔也会 ...