c++程序x64 编译出现 应用程序无法正常启动0xc000007b

hsskaaa 2016-03-17 11:47:46
我用VS2013写了一个win32的程序,后来想让其变为64位的,所以在x64下编译,之前出现一些LNK错误都一一解决了,该添加的库也都添加了,但是最后运行的时候出现了一个怎么也解决不了的错误:应用程序无法正常启动0xc000007b。
我用增强版directx修复过了,显卡驱动也重装了,dxd的库文件也检查了,不知道是哪里出现了问题呢?系统是WIN8.1的。
有没有人把32位平台程序改成64位出现过这种问题呢?
...全文
11708 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZPILOTE 2018-07-24
  • 打赏
  • 举报
回复 1
引用 13 楼 diezhongbing1358 的回复:
[quote=引用 10 楼 zhao4zhong1 的回复:] [quote=引用 9 楼 hsskaaa 的回复:] 我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
很明显,你需要将OpenCV源代码重新编译生成一份x64版本的dll,提供给你的64位程序使用。[/quote] 请你说话客气点,我在很多帖子看到你了,你技术高就能这样盛气凌人吗?记住,我们小白只是在虚心请教,不是在让你显摆,SB![/quote] 真没看出人家怎么说话不客气了(难道是‘很明显’三个字,可笑),倒是你在骂一个耐心帮你解决问题的人。
sqllib 2017-11-21
  • 打赏
  • 举报
回复
windows下安装的opencv需要修改环境变量path,改为64的目录,不需要copy dll到工程目录
落红jd 2017-11-16
  • 打赏
  • 举报
回复
引用 13 楼 diezhongbing1358 的回复:
[quote=引用 10 楼 zhao4zhong1 的回复:] [quote=引用 9 楼 hsskaaa 的回复:] 我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
很明显,你需要将OpenCV源代码重新编译生成一份x64版本的dll,提供给你的64位程序使用。[/quote] 请你说话客气点,我在很多帖子看到你了,你技术高就能这样盛气凌人吗?记住,我们小白只是在虚心请教,不是在让你显摆,SB![/quote] 人家也没怎么样吧好像
yaso_zhang 2017-10-18
  • 打赏
  • 举报
回复
引用 13 楼 diezhongbing1358 的回复:
[quote=引用 10 楼 zhao4zhong1 的回复:] [quote=引用 9 楼 hsskaaa 的回复:] 我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
很明显,你需要将OpenCV源代码重新编译生成一份x64版本的dll,提供给你的64位程序使用。[/quote] 请你说话客气点,我在很多帖子看到你了,你技术高就能这样盛气凌人吗?记住,我们小白只是在虚心请教,不是在让你显摆,SB![/quote]没必要吧
赵4老师 2017-10-17
  • 打赏
  • 举报
回复
引用 13 楼 diezhongbing1358 的回复:
[quote=引用 10 楼 zhao4zhong1 的回复:] [quote=引用 9 楼 hsskaaa 的回复:] 我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
很明显,你需要将OpenCV源代码重新编译生成一份x64版本的dll,提供给你的64位程序使用。[/quote] 请你说话客气点,我在很多帖子看到你了,你技术高就能这样盛气凌人吗?记住,我们小白只是在虚心请教,不是在让你显摆,SB![/quote] 我天生说话就这样能怨我吗?!
三年C++大菜鸟 2017-10-17
  • 打赏
  • 举报
回复
引用 10 楼 zhao4zhong1 的回复:
[quote=引用 9 楼 hsskaaa 的回复:] 我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
很明显,你需要将OpenCV源代码重新编译生成一份x64版本的dll,提供给你的64位程序使用。[/quote] 请你说话客气点,我在很多帖子看到你了,你技术高就能这样盛气凌人吗?记住,我们小白只是在虚心请教,不是在让你显摆,SB!
yueyang_js 2017-08-26
  • 打赏
  • 举报
回复
.\opencv\build\x64\vc9\bin下的dll是64位的。把64位dll放到64位debug和release下就可以搞定。这个问题也困惑了半个月,最后按照前面帖子的思路把64位dll放到64位debug和release下通过。
yueyang_js 2017-08-26
  • 打赏
  • 举报
回复
32位dll与64位dll不能搞混了 从".\opencv\build\x64\vc9\bin"下直接把64位dll文件放到debug和release下就可以搞定
赵4老师 2016-03-18
  • 打赏
  • 举报
回复
引用 9 楼 hsskaaa 的回复:
我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
很明显,你需要将OpenCV源代码重新编译生成一份x64版本的dll,提供给你的64位程序使用。
hsskaaa 2016-03-17
  • 打赏
  • 举报
回复
我发现opencv 32和wow64下的dll都是32位的,请问有没有其他使用opencv的人遇到过这个问题呢
赵4老师 2016-03-17
  • 打赏
  • 举报
回复
32位exe只能直接调用32位dll 64位exe只能直接调用64位dll
hsskaaa 2016-03-17
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
你没看清楚我用红色蓝色字体专门强调的内容! 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下;
好吧 我看懂了 可是为什么dll都是32位的 不是64位的呢
赵4老师 2016-03-17
  • 打赏
  • 举报
回复
你没看清楚我用红色蓝色字体专门强调的内容! 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下;
hsskaaa 2016-03-17
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
没有看懂注册的意思....我又重新配置了opencv,但是不知道为什么总是导入system32下32位的dll,但是库目录指定是在opencv x64文件夹下的,请问如何让64位的程序导入systemwow64下的opencv的dll呢?
赵4老师 2016-03-17
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
hsskaaa 2016-03-17
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
使用64位的depends.exe查看你exe依赖的dll
我用这个发现systemwow64中opencv相关的dll都是32位的,不知道是怎么回事,需要把所有32位的dll替换成64位的吗
赵4老师 2016-03-17
  • 打赏
  • 举报
回复
使用64位的depends.exe查看你exe依赖的dll

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧