先介绍一下平台
系统: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“
解决办法:参看