在不同编译器生成的DLL使用WBEM的问题

Areslee 2016-10-01 11:06:15
主要功能代码在一个VC6写的DLL中,其中会访问WBEM
现在遇到如下情况
用VC6编译的EXE直接打开VC6DLL并调用里面的函数,工作正常
用VC2013编译的EXE直接打开VC6DLL并调用里面的函数,工作正常
用VC2013编译的EXE直接打开一个VC2013编译的DLL(A),然后在DLL(A)中打开VC6DLL并调用里面的函数,崩溃在
IWbemLocator::ConnectServer()中。
我怀疑是不同编译器生成的DLL之中某些静态变量的位置不对造成的

求大牛指点原因及解决方案,谢谢!
...全文
540 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Areslee 2016-10-04
不能这么说吧 按这标准,VC6编译的东西在WIN7下应该就跑不了了
回复
Areslee 2016-10-02
因为功能代码没人维护,所以只好这样弄 奇怪的是 1. 2013EXE直接调DLL没问题 2. 不调有WBEM的那个函数也没问题
回复
oyljerry 2016-10-02
引用 2 楼 Areslee的回复:
因为功能代码没人维护,所以只好这样弄 奇怪的是 1. 2013EXE直接调DLL没问题 2. 不调有WBEM的那个函数也没问题
那也是运气好。微软是不推荐的
回复
oyljerry 2016-10-01
一般不要跨cc版本调用。也就是exe跟dll都是同一个版本的vc编译的
回复
发动态
发帖子
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
社区公告
暂无公告