您的位置:首页 > 编程语言 > ASP

delphi写asp组件时返回类型造成的问题

2006-08-17 15:17 288 查看
在做asp组件时,遇到了一个令人困惑的问题。我有个函数,里面是把一些字符串进行转换,asp中调用该函数,输入字符串后返回处理后的字符串,就是这么一个函数,在application中调试得很正常,但是在asp组件中调用居然有些错误有些正确。在刚刚试验完可以调试asp组件后,通过跟踪,发现了一些很奇怪的问题,在函数里面所有过程得到的值都正确,但是到返回给asp后就有某些字符串被截断了!组件中的函数输入是bstr类型,输出是OleVariant *。后来我干脆用了个中间量tmpvalue,函数结尾先输出tmpvalue,再令result:=tmpvalue,然后再输出tmpvalue, 这时奇迹出现了,输出的结果中result的值居然在尾部有几个字符发生了变化。(为了看得清楚点,我把字符转成16进制数显出出来了)
DBGPrint('tmpvalue:'+strtohexstr(tmpvalue));
result:=tmpValue;
DBGPrint('result value:'+strtohexstr(result));


结果是:
tmpvalue:758BC6413F4ED3220ED0D52BAF3EF222
result value:758BC6413F4E3F0ED0D52B3F3F

我倒,看来是OleVariant 在字符串赋值时自动给我做了手脚了,害我调试找原因找了N久!

现在的解决办法看来可能可以是把结果以二进制的buf返回又或者返回十六进制字符给asp,然后asp中再把十六进制转回字符串。想尝试用别的类型来做,但是试了几个都不成功。:(
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐