VC 连接sql数据库, CreateInstance失败的原因

本文探讨了在不同操作系统间运行连接SQLServer的VC6.0生成的可执行文件时遇到的CreateInstance失败问题,分析了原因并提供了解决方法。

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

前几天用vc6.0做了一个连接sql Server的程序,在我电脑上编译,生成了可执行文件,运行这个文件一切正常。当我把这个可执行文件拷贝到别人的电脑上,在有些电脑上可以正常运行,在有些电脑上出现CreateInstance失败的提示,并且无法连接数据库。我百思不得其解,用baidu搜了很长时间都没有发现导致CreateInstance失败的原因。哥着实郁闷了,后来我在出现CreateInstance失败的电脑上安装了VC6.0,重新对源代码全部重建,奇迹发生了,生成的可执行文件可以在该电脑上正常运行了。哥分析了一下原因,初步结论是,连接数据库的应用程序使用了 “c:\program files\common files\system\ado\msado15.dll ”这个文件,使用这个文件的代码为#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 。在编译的时候编译器会为msado15.dll生成两个文件msado15.tlh和msado15.tli。而生成的这两个文件估计和操作系统中的动态链接库msado15.dll有关,我怀疑在编译的时候,不同的操作系统生成的msado15.tlh和msado15.tli的内容是不同的,这样就直接导致了某一个操作系统下生成的连接数据库的可执行文件不能在一些其他的操作系统上正常运行。哥也是花了好长时间才发现这个现象的,为了其他遇到这个问题的人不再像我一样困惑,我把这个问题的解决方法写出来供大家参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值