问题描述
- VC6下DLL,VS2010下用,运行调试异常。
-
VC6下开发的DLL,在VC6下开发应用程序可以使用前述DLL,工程转换到VS2010之后也可以使用,但是在VS2010下直接使用前述DLL,编译可以通过,但是运行调试时报内存访问异常。请问大侠,该如何解决?
解决方案
两个可能性,一个是本来程序就有内存的问题,但是vc2010对内存的检查更严格,所以问题得以暴露。
另一个可能是单字节双字节的问题,或者一些结构体长度定义不同,你内存分配硬编码了长度,而不是用sizeof求值,导致内存分配不正确。
解决方案二:
不同编译器版本的实现有区别,微软是不保证不同版本的编译器之间的DLL能够互相调用,建议的方式是,exe,dll都用同一个版本的VS来编译调用
时间: 2024-09-16 01:30:54