升级VS后调用DLL出错

yangmijun 2008-06-14 09:27:14
近日遇到一个问题,请教各位大侠,

有一个VC++工程,原来是用 Visual Studio 2003 编译的,这个工程生成的可执行文件在运行时要调用一个dll中的函数,这个dll文件不在工程中,是第三方开发的,没有源代码。
用 Visual Studio 2003 编译的exe文件运行时调用那个dll中的函数,返回值正确,没有任何问题,一些正常。
但后来将这个工程改用 Visual Studio 2008 编译(从2003的工程直接升级),在 2008 编译也能通过,但2008编译版的exe运行时调用同一个dll中的函数返回值出错,导致程序不能正常运行。

请教各位大侠,像这种升级了编译器后导致调用dll出错的问题一般应该怎么处理呢?(注意,还使用原来的dll;另外补充一下,exe文件是命令行程序,没有使用.net framework里的功能)
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
flm007 2008-06-16
  • 打赏
  • 举报
回复
还是继续使用2003的好!
heguodong 2008-06-15
  • 打赏
  • 举报
回复
有一种可能是
你的DLL依赖于原来的VC++运行环境,主要是那几个DLL,
VS版本升级后的DLL版本不同
解决方法是将原来的VC++的那几个DLL找出来复制到你的DLL的目录里
  • 打赏
  • 举报
回复
dll做的不通用,你还得使用VS2003

要不你用VS2003再做一个标准的DLL,然后由2008使用。
zhouzhenyan 2008-06-14
  • 打赏
  • 举报
回复
这个问题是存在的,我也遇到过。不通用。还是用原来的vs2003吧。
devoc 2008-06-14
  • 打赏
  • 举报
回复
继续用vs03- -
cppwin 2008-06-14
  • 打赏
  • 举报
回复
用vc2008是为了支持64位?

新的编译器下,可能有些结构的宽度(sizeof)变化了,检查一下传入该函数的参数,是否存在这个问题.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧