随便几句

原创 2006年06月06日 21:16:00

看见别人都些Blog,从中吸取了许多有用的东东,自己也想写点,一是可以记录一些或许有价值的东西,另一方面遇到问题也可以发出来,让网上的众多高手帮忙解决。

今天将做的系统拿到企业实施,首先是小范围的,遇到的问题也不少,设置了主机,安装了数据库,将开发的系统安装到客户端,第一个就出现了问题,还好后面的没有问题,要不然真要Game Over了,查了一下,程序在XP下运行没问题,但在2000客户机上运行就出现程序中断的问题。上网查,终于搜到相同的症状,原来是这样的:

//////////////////////////////////////////////////////////////////////////////////////////

现象: 在开发机器上编译如下代码: #pragma warning(push)           // Needs to be done in order to suppress warning message #pragma warning(disable:4146)   // caused by bug in ADO (MS Knowledge Base article Q253317) #import "C:/Program Files/Common Files/system/ado/msado15.dll" /   no_namespace rename("EOF","adoEOF") #pragma warning(pop) ..... _CommandPtr pCmd = NULL; HRESULT hr = pCmd.CreateInstance("ADODB.Command"); 但是在客户的一台正常的Windows2000上却发生错误: Command指针创建失败,错误号:0x80004002,错误描述:没有此接口。 ·原因: 我们的开发机器上一般都装有MDAC2.7,这可能是因为装了SQL Server,也可能是WinXP自带的。 而客户机器上只有MDAC2.5。 由于微软的ADO开发小组习惯上总把ADO的最新版本命名为默认接口,如ADO2.5时将_Command25命名为_Command。 这样当你在MDAC2.7下编译VC代码,绑定的_Command的InterfaceID可能就是_Command2.7的接口ID。而在客户的MDAC2.5环境中 ,可能不存在这个接口ID,它的_Command的接口ID还是2.5的,和你的机器上的_Command接口ID肯定不一样。 所以以VC的方式创建_CommandPtr指针,是无法创建出来的。但是由于VB并不是绑定InterfaceID,所以VB中还可以正常创建ADO接口指针。 ·解决方法: 第一种:只在MDAC2.5环境下编译,并发布到MDAC2.5以上的客户环境中,但是WindXP就没有办法了; 第二种:强迫客户环境升级MDAC; 第三种:在MDAC2.7环境下编译,但是我们只明确表示创建Command25指针,如下所示: ADODB::Command25Ptr pCmdChange  = NULL; HRESULT hResult = pCmdChange.CreateInstance(__uuidof(ADODB::Command)); 第四种:选择使用OLEDB;

///////////////////////////////////////////////////////////////////////////

看了上面的一砣,知道了原因,但是解决起来觉得麻烦呀!

还好,小李子找到了更好的解决办法:

将原来的#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF") 改成#import "c:/program files/common files/system/ado/msado20.tlb" no_namespace rename("EOF","adoEOF")

问题解决了 哈哈 。。。。

[随便扯几句] 关于数据结构

吐槽一下学校这学期开始使用“SPOC+翻转课堂”的模式来教数据结构这门课。就我这段时间的体验来说,这种模式非常非常非常不负责任。虽说学习本就是自己的事情,不能寄希望于别人来督促,但这种模式让不想学习的...

各位观众老爷不如点进来随便评论几句QUQ

深夜无聊,不如学习16340221 [中山大学数据科学与计算机学院](http://sdcs.sysu.edu.cn/)不如来偷py的苹果吧深夜无聊不如学习 首先py的苹果是什么东西呢我们为什么要偷...
  • kid_hw
  • kid_hw
  • 2016年10月05日 01:40
  • 950

随便聊几句EventBus

EventBus(github地址https://github.com/greenrobot/EventBus),是一个消息分发总线开源框架,可以方便地在android应用的不同组件之间进行消息通信。...
  • aliankg
  • aliankg
  • 2016年07月06日 16:40
  • 517

随便聊几句关于UE3的Navigation Mesh

http://lichong.blogbus.com/logs/53924912.html UDK这次给公众看到的各种新功能里头,我个人比较感兴趣的一个就是其Navigation Mesh系...

it受用的几句话

  • 2011年05月27日 15:10
  • 651B
  • 下载

写给matlab新手的几句话

  • 2009年04月15日 14:24
  • 5KB
  • 下载

简单几句JQuary搞定手风琴特效

简单的几句JQuary搞定手风琴特效,
  • ANI2010
  • ANI2010
  • 2014年08月12日 15:56
  • 438

写给MATLAB新手的几句话

  • 2014年09月14日 13:06
  • 48KB
  • 下载

程序谏言 几句编程话

  • 2009年07月31日 01:31
  • 139KB
  • 下载

几句话弄清楚Java参数传值还是传引用

最近刷题用递归解决关于树的问题的时候,在递归函数调用的时候什么时候传入值,什么时候传入引用有疑问,因为这关系到什么时候我们需要恢复现场,什么时候不需要。在网上搜索了一下,感觉这篇总结的非常简单明了,简...
  • yangliuy
  • yangliuy
  • 2015年01月28日 14:58
  • 16600
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:随便几句
举报原因:
原因补充:

(最多只允许输入30个字)