是这样:由于调用某些API的需要,我有一个功能必须使用VC来实现底层的代码功能。由于界面等其它功能已经用VB写好了,所以我另外写了一个DLL来让VB代码调用(Declare)。调用中需要计算一个功能,结果是一个字符串,我从VB中传了一个String到DLL中接受数据后返回。经过调试后功能已经出来了,VB程序已经接受到了DLL计算后的字符串值。但非常奇怪的是:如果是使用VC调试,则函数被调用结束后(结果已经得到),会被两个莫名其妙的BreakPoint中断,但中断的地点是汇编代码段(我不可能在这里设置断点),然后就是一个AV错报出中断程序运行;
如果是在VB中调试,则运行到调用的那一行,报一个Bad DLL Conversion错误,结果无法得到;
如果是使用编译后的结果运行,则在得到结果后,报一个例外:A single step or trace operation has just been completed. 查MSDN的解释等于没说(说找程序提供者解决,废话这不就是我吗),但提示一点说“在已经结束运行的程序中不应该发生这样的错误”。我不懂这是什么意思,微软站点上也没有合适的结束。开始我怀疑是我程序的问题,但当我把调用函数的实现代码全部屏蔽后再试,问题依旧。这是怎么回事?还恳请各位高手相助BTW: 由于维护上的需要,这个DLL没有使用COM接口。