博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在64位机器上运行32位程序
阅读量:5139 次
发布时间:2019-06-13

本文共 749 字,大约阅读时间需要 2 分钟。

先介绍一下平台

系统:windows server 2008
网络服务:IIS 7.0

需要在web程序里面调用以前封装的c++的dll

工欲善其事,必先利其器。

由于手头没有可安装在64位机器上的vs2008,
于是安装vs2010,由于向下兼容,可以放心的用

有两种思路:

一个是将web程序和c++的dll都编译成64位的
另一种是都编译成32位的
这两种方法我都试过,由于没接触过c++,第一种涉及到
要修改c++代码等工作,走不通,于是放弃,采用第二种方法
为什么在64位机器上可以调用32位的dll,看如下的文章

第一步需要编译web程序,注意选择x86作为目标机器

而不是any cpu。any cpu会根据你的操作系统来选择
到底是64位还是32位。

第二步是建立在你手头有c++源代码。以前编译过的

在win32下的dll这时不能使用,会出现“应用程序的并行配置不正确”
的错误。于是需要重新编译成dll。
由于在64位机器上打开c++源代码有错误。我是在本机上进行重新编译的。

第三步entrypoint name有可能会发生改变。当报“找不到入口点”

错误时,你需要在dependends里面打开该dll,查看每个入口点名字是否符合

第四步 解决调试时带来的问题,我用try catch来捕捉错误,结果导致了

      “Thread was being aborted的错误”,解决办法就是去掉try catch
      请参照:

第五步 直接在vs中运行程序ok,但是发布后再运行报错”无法识别的属性targetFramework“

       解决办法:参看

转载于:https://www.cnblogs.com/myparamita/archive/2011/07/19/2110491.html

你可能感兴趣的文章
DataGridView的行的字体颜色变化
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
Java泛型的基本使用
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Postman-----如何导入和导出
查看>>
【Linux】ping命令详解
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>