dll从32位转换成64位该如何做
dll从32位转换成64位该怎么做
目前我有一个exe文件时32位的,exe没有源代码,exe调用一个dll(32位),这个dll有源代码,这个dll又调用另外3个dll(32位),这3个dll文件没有源代码,如何把第一个dll由32位转换成64位。
------解决方案--------------------
不要做A位代码修改为B位代码的无用功。
也不要做用A位代码直接调用B位代码库这样复杂、这样容易出错的傻事。
只需让A位、B位代码的输入输出重定向到文本文件,或修改A位、B位代码让其通过文本文件输入输出。
即可很方便地让A位、B位两种代码之间协调工作。
------解决方案--------------------
1。没有源代码不要想着移植的事情
2。如果是接口组件(比如com dll),支持有限的32位和64位互通(通过进程服务器),但是想转可执行文件为64位的,不可能了。
3。32位程序支持在64位系统上运行。但是只能以32位程序方式执行。另外系统底层组件,比如驱动程序,32位的驱动程序无法用于64位的系统。系统不提供这种兼容
4。就算你有源代码,如果以前开发的时候做了很多假设,这类代码就根本无法移植了。比如有的人编程喜欢用long存储指针或句柄(这个也经常是linux程序员干的事),而不是像文档推荐的那样使用 平台无关整数 类型(指针型整数),这样的代码就无法在64位系统上正常工作了。还有一些api,只用于32位系统的,文档会推荐你用兼容型函数而不要直接使用那些api。比如interlockedXXXXpointer代替interlockedXXXX、GetWindowLongPtr代替GetWindowLong。。。这些
目前我有一个exe文件时32位的,exe没有源代码,exe调用一个dll(32位),这个dll有源代码,这个dll又调用另外3个dll(32位),这3个dll文件没有源代码,如何把第一个dll由32位转换成64位。
------解决方案--------------------
不要做A位代码修改为B位代码的无用功。
也不要做用A位代码直接调用B位代码库这样复杂、这样容易出错的傻事。
只需让A位、B位代码的输入输出重定向到文本文件,或修改A位、B位代码让其通过文本文件输入输出。
即可很方便地让A位、B位两种代码之间协调工作。
------解决方案--------------------
1。没有源代码不要想着移植的事情
2。如果是接口组件(比如com dll),支持有限的32位和64位互通(通过进程服务器),但是想转可执行文件为64位的,不可能了。
3。32位程序支持在64位系统上运行。但是只能以32位程序方式执行。另外系统底层组件,比如驱动程序,32位的驱动程序无法用于64位的系统。系统不提供这种兼容
4。就算你有源代码,如果以前开发的时候做了很多假设,这类代码就根本无法移植了。比如有的人编程喜欢用long存储指针或句柄(这个也经常是linux程序员干的事),而不是像文档推荐的那样使用 平台无关整数 类型(指针型整数),这样的代码就无法在64位系统上正常工作了。还有一些api,只用于32位系统的,文档会推荐你用兼容型函数而不要直接使用那些api。比如interlockedXXXXpointer代替interlockedXXXX、GetWindowLongPtr代替GetWindowLong。。。这些