调用的DirectX Direct3D Direct3DX的dll 程序运行x86时正常 ,选择x64就不行

有时想起 2017-10-24 04:22:09
报错 类型初始设定项引发异常。 电脑是64位的。很奇怪哦。是dll的问题?
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
njit_77 2017-10-28
  • 打赏
  • 举报
回复
引用 5 楼 u011672494 的回复:
[quote=引用 2 楼 njit_77 的回复:] 那你编译的程序是什么平台?AnyCPU?如果没有选择“首选32位”,你运行的exe就是64位的,无法加载32位dll
选择的是x86的 anyCpu或者x64都会报错[/quote] 如果dll是32位,编译的exe也要是32位才可以。(选择x86或者anycpu的首选32位) 同样,如果dll是64位,编译的exe也要是64位才可以。 编译时选择anycpu,但是没有选择首选32位,你在64位电脑下打开exe,实际上JIT生成的机器语言是配合64位电脑的。 要么选择x86,要么选择x64。anycpu是随操作系统位数来定的
有时想起 2017-10-27
  • 打赏
  • 举报
回复
引用 2 楼 njit_77 的回复:
那你编译的程序是什么平台?AnyCPU?如果没有选择“首选32位”,你运行的exe就是64位的,无法加载32位dll
选择的是x86的 anyCpu或者x64都会报错
desperaso 2017-10-26
  • 打赏
  • 举报
回复
dx有64、32的库,我一般碰到的是.net版本引发的问题,用上面的方法
desperaso 2017-10-26
  • 打赏
  • 举报
回复
如果是dx9的话,修改app.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> </configuration>
有时想起 2017-10-25
  • 打赏
  • 举报
回复
大神求解。。。。。。。。。。。。。
njit_77 2017-10-25
  • 打赏
  • 举报
回复
那你编译的程序是什么平台?AnyCPU?如果没有选择“首选32位”,你运行的exe就是64位的,无法加载32位dll

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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