出错情况: 1.debug版本的程序调用release版本的dll,程序没有反映. 2.release版本的程序调用debug版本的dll,程序提示如下错误: Debug assertion failed! Program:..\MyProjects\DllTest\DllTest.exe File:dbgheap.c Line:1044 Expression:_CrtIsValidHeapPointer(pUserData) For the information on how your program can cause an .... ......
当然你可以根据是否定义了_DEBUG宏来写出分别针对Release/Debug的代码。在调用的时候,Release版的程序不能调用debug版的动态链接库,反之依然.
可能是两者的编译选项的差别造成的。
似乎只提供了一个,但两中编译都能调用
当然你可以根据是否定义了_DEBUG宏来写出分别针对Release/Debug的代码。在调用的时候,Release版的程序不能调用debug版的动态链接库,反之依然.
可能是两者的编译选项的差别造成的。
/////////////////////////////////
恩,肯定不一样啊
而且必须不一样啊,一样的话就没有什么好说的了
原来你说的是动态接库"Release版的程序不能调用debug版的动态链接库",我试了一下不是这样.互相调用没有问题
>恩?那我怎么会出这个问题呢?
你出的错误是什么?
如果是这种情况最好自己调试一下,看看为什么
方法:dll设置为debug版本,在vc中运行这个dll,启动程序设置为你要用到这个dll的程序(release版本),在调用函数的入口设置断点
1.debug版本的程序调用release版本的dll,程序没有反映.
2.release版本的程序调用debug版本的dll,程序提示如下错误: Debug assertion failed!
Program:..\MyProjects\DllTest\DllTest.exe
File:dbgheap.c
Line:1044 Expression:_CrtIsValidHeapPointer(pUserData)
For the information on how your program can cause an ....
......
我用API写没这种问题。
1.debug版本的程序调用release版本的dll,程序没有反映.
2.release版本的程序调用debug版本的dll,程序提示如下错误:
....
那你的debug版本的程序调用debug版本的dll有没有问题?
就是,交叉调用有问题
我的dll是选的扩展的那种(MFC Extension DLL)
是否用接口来做?
That's all.