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初探的更多相关文章

  1. FireDAC的SQLite初探

    // uses FireDAC.VCLUI.Wait  之后, 可不用添加 TFDGUIxWaitCursor TFDConnection          // 数据连接 TFDQuery      ...

  2. 【转载】保哥 釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係

    我常常不仅仅逛 博客园,还会去找国外,特别是台湾的技术部落格,发现好的文章,我便会收录,今天我转载或者全文复制,在Google 博客园,一位叫保哥, 釐清 CLR..NET.C#.Visual Stu ...

  3. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  4. Unity3D游戏开发初探—3.初步了解U3D物理引擎

    一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:“如果说我看得比较远的话,那是因为我站在巨人的肩膀 ...

  5. EntityFramework 7.0之初探【基于VS 2015】(十)

    前言 本篇作为EF 7.0的开篇也是Entity Framework目前系列末篇,因为关于EF 7.0学习资料实在是太少,我都是参考老外的资料花费了不少时间去研究去尝试同时也失败多次,个人觉得那是值得 ...

  6. 【转】Sqlite 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该...

    开发环境: vs2010+.net framework 4.0+ System.Data.SQLite.DLL (2.0)今天在做Sqlite数据库测试,一运行程序在一处方法调用时报出了一个异常 混合 ...

  7. CLR/.NET/C#/Visual Studio/ASP.NET各版本之间的关系(转)

    由于这篇文章记录的是2015年7月,那时.net core还是叫做.net core 5 名词定义 下列这些名词,写.NET 的人一定都不陌生,但你是否有真正理解呢?如果看了我的摘要文字说明还无法理解 ...

  8. WCF初探-10:WCF客户端调用服务

    创建WCF 服务客户端应用程序需要执行下列步骤: 获取服务终结点的服务协定.绑定以及地址信息 使用该信息创建 WCF 客户端 调用操作 关闭该 WCF 客户端对象 WCF客户端调用服务存在以下特点: ...

  9. SQLite入门与分析(七)---浅谈SQLite的虚拟机

    写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久.最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与 ...

随机推荐

  1. [转] Web前端优化之 内容篇

    原文网址: http://lunax.info/archives/3090.html Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献. ...

  2. cloud maintenance of OpenNebula

    OpenNebula 4.4.1 maintenance release,官方建议当前的生产环境使用3.x or 4.x的其它版本; php调用curl工具伪造ip Upgrading from Op ...

  3. Spark SQL概念学习系列之Spark SQL 优化策略(五)

    查询优化是传统数据库中最为重要的一环,这项技术在传统数据库中已经很成熟.除了查询优化, Spark SQL 在存储上也进行了优化,从以下几点查看 Spark SQL 的一些优化策略. (1)内存列式存 ...

  4. Codeforces 599D Spongebob and Squares(数学)

    D. Spongebob and Squares Spongebob is already tired trying to reason his weird actions and calculati ...

  5. ReactNative环境搭建

    参考:http://bbs.reactnative.cn/topic/10/%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAreact-native-androi ...

  6. 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境

    在windows7上搭建COCOS2D-X开发环境并不难, 但是由于框架更新过快,很多用户都有困难.我希望你们认为这个教程有用. 建议:为了避免安全相关的问题,请以管理员权限执行所有的操作,当运行命令 ...

  7. checked 选中

    <input type="radio" name="singleAnswer" value="0" <s:property va ...

  8. centos6.5下Python IDE开发环境搭建

    自由不是想做什么就做什么,而是想不做什么就不做什么.        ---摘抄于2016/11/30晚 之前学习了一段时间的Python,但所有部署都在windows上.正赶上最近在学习liux,以后 ...

  9. Linux在向磁盘新建文件的时候在系统层面的四步操作

    ----------- 1.存储文件属性.内核先找到一个空的i节点,并把文件属性信息记录其中.   2.存储数据.先计算要多少个磁盘块,在内核自由块列表找到合适数量的磁盘块,并把数据从内核的缓冲区依次 ...

  10. Java网页数据采集器[下篇-数据查询]【转载】

    本期概述 上一期我们学习了如何将html采集到的数据存储到MySql数据库中,这期我们来学习下如何在存储的数据中查询我们实际想看到的数据. 数据采集页面 2011-2012赛季英超球队战绩 如果是初学 ...