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. MFC学习20160718(GetModuleFileName&&GetAppDataPath)

    1.标题栏设置 一.对话框标题栏内容为静态 直接在对话框属性“General”的“Caption”中修改. 二.对话框标题栏内容为动态生成的 在对应对话框的初始化函数OnInitDialog()中添加 ...

  2. Windows server 2008 上部署 MVC (NopCommerce 3.4)网站

    自己用开源框架做了个商城,该框架是基于mvc4的,本地编译通过,运行一切正常,关于发布遇到了好几个问题. 本地: IIS7.5. VS2013 总结后发现只需要设置两个问题,就不会有那些古怪的问题:什 ...

  3. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇01:播放序列动画》

    1.播放序列动画 系列动画播放概述 2D游戏中的动画系统,不同于3D游戏.3D游戏中,角色美术资源不仅包含角色模型的,还包括角色的贴图和动作等,模型本身自带角色的动作动画效果.2D游戏中,角色美术资源 ...

  4. mahout 安装

    1. 下载mahout-distribution-0.5.tar.gz 并解压: 2.配置环境变量: /etc/profile export MAHOUT_HOME=/home/mahout/ exp ...

  5. 问题-XE8客户端访问Webservice时报“no selected dom vendor”

    问题现象:XE8做的客户端访问XE8做的Webservice时,客户端报“no selected dom vendor”. 问题原因:原因不明,应该是用到了XML转换等方法吧.有高手了解的,请M我. ...

  6. Red5源代码分析 - 关键类及其初始化过程

    原文地址:http://semi-sleep.javaeye.com/blog/348768 Red5如何响应rmpt的请求,中间涉及哪些关键类? 响应请求的流程如下: 1.Red5在启动时会调用RT ...

  7. CodeForces 589B Layer Cake (暴力)

    题意:给定 n 个矩形是a*b的,问你把每一块都分成一样的,然后全放一块,高度都是1,体积最大是多少. 析:这个题,当时并没有完全读懂题意,而且也不怎么会做,没想到就是一个暴力,先排序,先从大的开始选 ...

  8. cookie.js 加载顺序问题

    今天遇到一个问题,在使用cookie.js时,只有在jquery.js文件后加载整体才有效 有效加载顺序 <head> <script type="text/javascr ...

  9. Cocos2d-x——CocosBuilder官方帮助文档翻译3 动画

    Working with Animations 动画 You can use CocosBuilder for creating character animations, animating com ...

  10. Ubuntu 12.04 中安装和配置 Java JDK

    先去 Oracle下载Linux下的JDK压缩包,我下载的是jdk-7u4-linux-i586.tar.gz文件,下好后直接解压 sudo mv ./jdk1.7.0_55 /usr/lib/jdk ...