现在的位置: 首页 > 综合 > 正文

Winform中用ReportViewer浏览rdlc报表碰到的一个致命异常

2011年02月27日 ⁄ 综合 ⁄ 共 609字 ⁄ 字号 评论关闭
以前在用Reporting Service 2000的时候,由于需要对报表做多语言处理,所以发现了一个问题,中文报表导出到pdf,会出现乱码。我就用Reporting Service 2005来试试看,这个问题是否已经解决。我用的是reporting service 2005提供的rdlc报表模板,在Winform中用ReportViewer来浏览该报表(报表中含有中文),报表浏览正常,当导出到Excel时一切正常,当导出到pdf时,就报了随笔中的异常。异常信息如下:
PInvokeStackImbalance was detected.
对 PInvoke 函数“Microsoft.ReportViewer.Common!Microsoft.ReportingServices.Rendering.ImageRenderer.CompositionPDF+WindowsGDIWrapper::GetGlyphIndicesW”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。


该异常应该是由ReportViewer控件引起的,我原来误认为是Reporting Service 2005的问题,是我搞错了。
在此向各位抱歉。

[后来,我又直接创建一个rdlc模板,浏览导出,中文乱码问题依旧。看来中文报表导出到pdf还是个有点麻烦的问题。]

抱歉!评论已关闭.