喵了个咪的。到目前为止,自己已经用过SQL SERVER,My SQL,Oracle,SQLite,加上南大通用GBASE 五种数据库了。虽然每种都用的不深

注:GBASE提供了C的API,查看手册即可。不支持string。

用C++配置GBASE:

对方提供了32位和64位windows下的库。

在程序中添加 gbase.h errmsg.h 两个头文件 ,导入gbaseclient.lib libgbase.lib 两个lib文件,再添加libgbase.dll

完毕。

但是出现了一堆 error LNK2005的问题,大概是说:

原来会发生这些奇怪的错误状况,是因为程序同时链接了 LIBCMTD.lib与MSVCRTD.lib而造成函数定义版本冲突。也就是说,程序链接器已经在其中一个 CRT的版本中找到所需的函数定义,但此时却又跳出另外一位 CRT,也给了一份相同函数的实现版本,所以链接器无法判断应该忽略谁并且选择谁。

参考网址:http://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/01/2889668.html

这个网址说的很详细,方便概念理解,但是按照这种方法不能够实现。

关键词:程序库、CRT、LIBCMTD.lib、MSVCRTD.lib、链接库的冲突问题、MSVC链接处理

阅读前需要对静态库(.lib)、动态库(.dll)、导入库(这个还是.lib)之间的区别联系有了解。建议先读读宋宝华先生的《VC++动态链接库(DLL)编程深入浅出 》

其实我也不懂。马克一下这本书。最近碰到dll的问题太多了,真的该看一下。

我的解决方法:

1. 属性-C/C++ - 代码生成-多线程调试(MDd)。因为我是debug下。

2.属性-- 链接器(Linker) .忽略特定默认库 libcmt.lib

3.属性-清单文件-生成清单-否

注:有个很屌的操作,刚学会的。

 在“项目 -> 属性 -> 链接器 -> 命令行”栏中,输入 /verbose:lib编译参数,这样,就可以在output窗口看到链接时搜索的库的先后顺序,对于本问题,你一定可以看到lib的调用顺序
 

最新文章

  1. Hadoop学习
  2. 理解js中this的指向
  3. atitit.导航的实现最佳实践and声明式编程
  4. linux kernel 0.11 bootsect
  5. des算法的C#实现
  6. html5中的一些小知识点(CSS)
  7. rsyslog masg和rawmsg的区别
  8. jquery不兼容input的change事件处理
  9. 201521145《Java程序设计》第2周学习总结
  10. 快速获取表单多条数据,使用ajax传递给后台
  11. nuget的问题, NuGet 程序包还原失败
  12. ssh免密登陆:sshpass -p [passwd] ssh -p [port] root@192.168.X.X
  13. python scrapy 入门,10分钟完成一个爬虫
  14. LNMP平台搭建之一:nginx编译安装
  15. Eclipse上传项目到Git
  16. jQuery EasyUI 选项卡面板tabs使用实例精讲
  17. 关于hashMap中 计算hashCode的逻辑推理(二)
  18. 决策树--信息增益,信息增益比,Geni指数的理解
  19. Android LCD(二):LCD常用接口原理篇(转)
  20. spring mvc静态资源请求和<mvc:annotation-driven>

热门文章

  1. PL/SQL安装部署配置(配图解)
  2. ajaxSubmit
  3. jQuery Mobile 列表内容
  4. VaR实现实证
  5. 记录Qt的一个诡异Bug
  6. spring 多线程 注入 服务层 问题
  7. WinForm开发之取送货管理1
  8. C#数据结构选择
  9. Oracle 安装及其遇到的问题
  10. 给JavaScript初学者的24条最佳实践