delphi写asp组件时返回类型造成的问题
2006-08-17 15:17
288 查看
在做asp组件时,遇到了一个令人困惑的问题。我有个函数,里面是把一些字符串进行转换,asp中调用该函数,输入字符串后返回处理后的字符串,就是这么一个函数,在application中调试得很正常,但是在asp组件中调用居然有些错误有些正确。在刚刚试验完可以调试asp组件后,通过跟踪,发现了一些很奇怪的问题,在函数里面所有过程得到的值都正确,但是到返回给asp后就有某些字符串被截断了!组件中的函数输入是bstr类型,输出是OleVariant *。后来我干脆用了个中间量tmpvalue,函数结尾先输出tmpvalue,再令result:=tmpvalue,然后再输出tmpvalue, 这时奇迹出现了,输出的结果中result的值居然在尾部有几个字符发生了变化。(为了看得清楚点,我把字符转成16进制数显出出来了)
结果是:
tmpvalue:758BC6413F4ED3220ED0D52BAF3EF222
result value:758BC6413F4E3F0ED0D52B3F3F
我倒,看来是OleVariant 在字符串赋值时自动给我做了手脚了,害我调试找原因找了N久!
现在的解决办法看来可能可以是把结果以二进制的buf返回又或者返回十六进制字符给asp,然后asp中再把十六进制转回字符串。想尝试用别的类型来做,但是试了几个都不成功。:(
DBGPrint('tmpvalue:'+strtohexstr(tmpvalue)); result:=tmpValue; DBGPrint('result value:'+strtohexstr(result));
结果是:
tmpvalue:758BC6413F4ED3220ED0D52BAF3EF222
result value:758BC6413F4E3F0ED0D52B3F3F
我倒,看来是OleVariant 在字符串赋值时自动给我做了手脚了,害我调试找原因找了N久!
现在的解决办法看来可能可以是把结果以二进制的buf返回又或者返回十六进制字符给asp,然后asp中再把十六进制转回字符串。想尝试用别的类型来做,但是试了几个都不成功。:(
相关文章推荐
- 入门级问题。 VC ATL 封装 Delphi com 组件 pchar 类型转换。
- js通过window.external调用delphi的返回值类型问题解决方案,不解的COM问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- ASP.NET Core Web API处理HttpResponseMessage类型返回值的问题
- 用JS解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- error LNK2019:无法解析的外部符号.lib是用vc6编的,其中用到了消息响应,vc6的消息响应函数和vc2005的消息响应函数的参数和返回值类型不同造成的链接问题.
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- ASP.NET前台无法访问后台internal类型变量的问题 [转]
- 关于request对象的方法返回值类型问题
- ABP Asp.net(c#) 找不到组件问题的解决
- 探讨由于死锁或进程阻塞造成的ASP突然不能访问的问题
- ASP.NET Web API 通过参数控制返回类型(JSON|XML)
- Firefox显示xml文件或者xml类型的返回时遇到的问题
- ajax后台返回json,后台有Date类型变量被封装进json,非正常结束问题
- FindObjectsOfType返回场景中所有该类型的组件集合