accessdatabaseengine
access2007runtime
visual c++ 2010 redistributable
.net 4.0
都不起作用。我是vs2010 + ado + access
----
我搞定了,问题是这样的:
本机和测试机msado15.dll版本不一样。
若是win7 的那msado15.dll的版本太高了,测试机xp是无法注册的。
所以解决办法就是:把测试机的msado15.dll拷贝到本机上再编译,此时#import的是xp版的msado15.dll,然后这个程序就能运行了。
另有个小细节,win7和xp的msado15.dll的路径是不一样的,所以你得注意。
当然你本机若不是win7的那简单多了,只要2机的msad015.dll版本一样就好。拷贝过去注册就行。
CXXXApp::InitInstance是在DLL初始化的时候调用的,因为CoCreateInstance会加载对应的CLSID的DLL模块,你这样的情况相当于在DllMain里LoadLibrary加载DLL,这种做法微软是不推荐的,因为在这个时候加载DLL,容易出现死锁建议你导出一个新函数,在这个函数里做初始化,不要在InitInstance里调CoCreateInstance了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)