编译出EXE在其他的机器上运行后提示:无法定位程序输入点到_ftol2于动态链接库msvcrt.dll上

本文记录了解决一个特定的动态链接错误的过程,该错误出现在使用VS2008编译的应用程序中,提示“无法定位程序输入点到_ftol2于动态链接库msvcrt.dll”。通过更换编译环境及移除不兼容的IPHLPAPI.DLL文件最终解决了问题。

    前些天我编译的一个程序在其他的机器上都可以运行的好好的,这些天更新了一些代码,因为重装了系统,用VS2008编

译出新的EXE程序,发现在其他的机器上运行后提示:无法定位程序输入点到_ftol2于动态链接库msvcrt.dll上

    查资料查了很久也没找到可用的办法,于是我把前些天代码重新编译了下,居然也提示说:无法定位程序输入点到_ftol2于动

态链接库msvcrt.dll上。

    最后用同学的XP下+VC2008来编译,结果在其他的机器上又可以运行了。

    如果有和我一样遇到这种情况的同学可以试试。

 

    其他的办法(我没有成功,但有些机器上应该是可以):1.把winsxs下的WinSxS目录下的VC9的文件打包,还有C:/WINDOWS/WinSxS/Manifests、C:/WINDOWS/WinSxS/Policies目录下,全部拷到目标机器上(这个是论坛上的fibbery大哥说的)

    2.用高版本的msvcrt.dll  替换windows/system32/下的msvcrt.dll (这个是百度的)

    3.用系统还原还原不能运行的机器,特别是一开始可以运行的那种

 

 

        刚刚再次做了下试验,终于发现出问题的真正原因了,原来不是编译问题,也不是msvcrt.dll的问题,而是因为我把VISTA下的IPHLPAPI.DLL拷到了程序目录下,而IPHLPAPI.DLL的版本和xp自带的版本不一致所以导致出错,删除IPHLPAPI.DLL后,一切都恢复了~~~囧

微狗(UMI/UMC/PMH/PMI)驱动安装程序是安装在 Windows 9X/ME/NT/2K/XP/WS2003/Vista /XP64/WS2003x64/Vista64环境下的驱动的程序。 加密后的 Win32 应用程序在 Windows 9x以及Windows ME 下运行时,需要安装硬件狗 Windows 9x 的设备驱动程序。 加密后的 DOS16,DOS32,WIN16,WIN32 应用程序在 Windows NT/2K/XP运行时,必须要安装 硬件狗 Windows NT/2K/XP 的设备驱动程序。 本版MicroDogInstdrv.exe通过调用RCMicroDogSetup.dll的接口函数DriverDialog来显示驱动安装、 卸载界面。用户既可以使用MicroDogInstdrv.exe来安装和卸载自己的驱动程序,也可以自行构造界 面来安装和卸载驱动程序运行MicroDogInstdrv.exe击安装按钮来安装驱动程序,该程序可自动识别操作系统,并提示安装状态。 注意:在Windows Vista下,需要右健击安装程序,在弹的菜单 中选择"Run as administrator"来运行安装程序。 软件开发商不但在加密时需要安装该设备驱动程序,而且在发行软件时,也应根据最终用户的操 作系统,安装相应的设备驱动程序。 如果您需要卸载狗的驱动程序,可以运行MicroDogInstdrv.exe击卸载按钮来卸载驱动程序,软件可以自 动识别当前环境,完成驱动程序的卸载工作。 同时MicroDogInstdrv.exe支持命令行参数,命令行参数(不区分大小写)说明如下: /? 显示命令行帮助 /i 安装时不显示界面 /r 卸载时不显示卸载界面 /a 安装并口狗和USB狗驱动 /p 只安装或卸载并口狗驱动(需要结合/i或/r参数使用) /u 只安装或卸载USB狗驱动(需要结合/i或/r参数使用) /s 不显示任何安装和卸载信息 例: MicroDogInstdrv /i/s 安装过程中不显示任何信息
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值