近日遇到一个问题,请教各位大侠,有一个VC++工程,原来是用 Visual Studio 2003 编译的,这个工程生成的可执行文件在运行时要调用一个dll中的函数,这个dll文件不在工程中,是第三方开发的,没有源代码。
用 Visual Studio 2003 编译的exe文件运行时调用那个dll中的函数,返回值正确,没有任何问题,一些正常。
但后来将这个工程改用 Visual Studio 2008 编译(从2003的工程直接升级),在 2008 编译也能通过,但2008编译版的exe运行时调用同一个dll中的函数返回值出错,导致程序不能正常运行。请教各位大侠,像这种升级了编译器后导致调用dll出错的问题一般应该怎么处理呢?(注意,还使用原来的dll;另外补充一下,exe文件是命令行程序,没有使用.net framework里的功能)
用 Visual Studio 2003 编译的exe文件运行时调用那个dll中的函数,返回值正确,没有任何问题,一些正常。
但后来将这个工程改用 Visual Studio 2008 编译(从2003的工程直接升级),在 2008 编译也能通过,但2008编译版的exe运行时调用同一个dll中的函数返回值出错,导致程序不能正常运行。请教各位大侠,像这种升级了编译器后导致调用dll出错的问题一般应该怎么处理呢?(注意,还使用原来的dll;另外补充一下,exe文件是命令行程序,没有使用.net framework里的功能)
你的DLL依赖于原来的VC++运行环境,主要是那几个DLL,
VS版本升级后的DLL版本不同
解决方法是将原来的VC++的那几个DLL找出来复制到你的DLL的目录里