VS2012 下编辑的c#项目在xp环境下调用dll报错:无法定位程序输入点GetTickCount64 于动态链接库KERNEL32.dll上

在Win7 64位环境下开发的C#项目,依赖含有GetTickCount64的dll,在XP系统报无法定位程序输入点错误。解决方案涉及对dll源码的修改,通过在stdafx.h添加兼容代码,以避免使用仅在Vista及以上系统中存在的GetTickCount64函数,重新编译后在XP和Win7上都能正常运行。
摘要由CSDN通过智能技术生成

1.问题背景

项目中有一项功能:根据dll文件里面定义的规则对txt文件进行相应的解析。
项目是在win7,64位环境下的一个c#项目,功能完成后在win7下运行正常,但在xp环境(sp3)下却出现如下问题:

错误信息

2.解决方案

在网上查阅了很多资料,但有些方案并不适合于c#的项目,最终在不懈努力下终于找到了突破口。
如果是c/c++的项目可以参考这个解决方案:
https://www.cnblogs.com/rixiang/p/7991843.html
找了很久才发现vs2012中的c#项目和c/c++项目的属性是不一样的,c#没有找到设置平台工具集的入口,但是c/c++项目可以通过修改平台工具集实现。

以下说明我这次问题的解决方案:

  1. 首先找到问题所在:gettickcount64。 通过百度发现在xp系统中的kernel32.dll中并不包括这个函数,而这个函数的最低版本是windows Vista 及之后才出现的,所以报此错误。
  2. 下载一个工具:exescope。此工具可以看到dll所调用的函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值