在win7 64位 使用oledb方式,连接oracle9i 数据库,提示:未在本地计算机上注册OraOLEDB.Oracle.1的程序
项目工程调试模式改为x86,不要是any cpu
安装Oracle9i客户端精简版,并注册 resgvr32 c:oracleora90inoraoledb.dll。
如遇中文乱码,在注册表修改……oraclehome0下的字符集,我是改成……us7ascii
说重点:
关于需要依赖dll的程序,换台电脑无法使用问题的通用解决思路:
程序在A电脑可以使用,换到B电脑无法使用,在排除是系统框架程序(.net framework等)原因后,可能是两台电脑注册的dll版本不一致,或者系统环境变量等设置不一致。
在这里http://www.xdowns.com/article/241/Article_3338.html 有很多相关工具:
本次查到问题原因使用率如下工具
3. Process Explorer http://www.xdowns.com/soft/6/56/2006/Soft_33951.html
这个工具很好用,它可以查看当前运行的每个程序都调用了哪些dll,而且显示的很全面。相对于Dependency Walker,它显示dll的信息更全一些,而且动态性更强一些,比如在调试代码的过程中,程序运行到具体的一步,它调用了哪些dll,再运行到下一步,又调用了哪些dll,都可以看出来。
5. regdllview
这个工具的特点是可以查看每个已注册的dll的id值,并且可以很方便的在注册表中找到这个id。
我就是用regdllview发现两台电脑已注册的oledb.dll不一致,重新注册,变为一致 解决了这个问题。