1.客户机系统为windows98,
2.使用ADO访问数据库,已从M$上下了最新的MDAC_TYP.EXE装上。
3.使用静态库,程序很简单保证没问题
4.直接copy到xp和2000机上均能正常使用
5.why?开发环境:vs2003+sql2000

解决方案 »

  1.   

    需要.net 环境吧 框架之类的
      

  2.   

    需要.net 环境吧 框架之类的
    ================================
    是MFC的,已作静态链接。首先确定出错的代码行
    ===================================
    在2003,xp,2000上都正常,没有出错。
      

  3.   

    mfc71.dll
    msvcr71.dll这两个类库拷到应用程序目录就可以了。
    或system32下面!
      

  4.   

    To awjx(啦啦啦):
        我都说了好几次了,是静态链接,不存在这样的问题。发现一个重要线索,我在本机上用兼容模式运行,
    win95,win98/me 都提示:引用的内存不能为"read".
                    在ntdll.dbgBreakPoint:ret 中断. 
    winnt,win2000,winxp一切正常。
      

  5.   

    不知是不是用了Skin++的原因?
    把skin++去了后,本机兼容模式win98/me正常.
    刚才试了还是不行,内存错误.
      

  6.   

    Windows NT从底层支援Unicode(不幸的是,Windows 98只是小部分支援Unicode)。
    =========================================================================
    我用到了_T()
    会不会因为这个?
      

  7.   

    ADO访问数据库在98下不能连接.一般是98下ADO的驱动版本太老..
      

  8.   

    发现一个重要线索,我在本机上用兼容模式运行,
    win95,win98/me 都提示:引用的内存不能为"read".
                    在ntdll.dbgBreakPoint:ret 中断. 
    winnt,win2000,winxp一切正常。感觉是静态链接的时候,import table里的dbgBreakPoint地址不对(NT内核的地址),也可能win98里不支持该函数(根本没有该函数)。可以做两个版本,放到win98下去编译一下就行了。
    还有一种折中的方法就是用调试软件载入后,定位到dbgBreakPoint,把第一条指令改为C3,直接返回,可以试一下。不过还是上面那种好啦。
      

  9.   

    第一种方法我也想到过,在win98上装vs2003麻烦啊
    想改成vc6的,但要改的太多了,