vs2013 ODBC连接Oracle 学习记录2

将ODBC连接Oracle的类封装到动态库中时遇到错误,主要问题是连接函数参数类型不匹配。解决办法是调整参数类型并确保头文件、lib和dll位于工程目录下。此外,讨论了Win32控制台程序、Win32工程与MFC工程之间的区别,特别是入口函数和链接器设置的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    之前已经将ODBC封装成了一个完整的类,之后需要将其封装为动态库文件。这样做的好处是只需要提供头文件及lib,dll文件,不需要提供具体函数的实现。

    上午一顿操作,没注意把之前下载的ODBC驱动的相关文件给删了,导致在控制面板也删不掉ODBC的数据源,重新安装了instantclient-basic-nt-11.2.0.3.0 及  instantclient-odbc-win32-11.2.0.1.0之后,ODBC驱动居然报错,整了半天并参考了 http://www.iyunv.com/thread-39955-1-1.html。安装了vcredist_x86终于好用了。

    下午简单百度了下把类封装成动态库的例子,参考 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29121609&id=3851844,于是准备把之前的ODBC类封装起来。但这时又出现了问题(本人C++功底薄弱):之前的ODBC类是在VS2013空项目里面写的,这次放到了win32 dll里面,程序本身居然报错(连接函数参数类型出错),于是按照要求的参数类型改了改,生成了动态库文件,但是运行时却无法连接数据库,connect函数直接return -1,这个问题耽误了很久,最后在论坛的大神处得到答案:


项目菜单--项目属性(最后一个)--配置属性--常规--项目默认值--字符集,(Project-> Properties-> Configurations Properties-> General-> Project Defaults-> Charater Set)将使用Unicode字符集改为未设置即可。

    至此,问题解决,将头文件,lib,dll放到工程下即可。


    转自知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值