zoukankan      html  css  js  c++  java
  • 关于 Winform 下 ReportViewer 打印异常

    想必有不少朋友做过 WinForm 下的 ReportViewer 应用,在功能打印和导出PDF时会遇到一个异常:

    检测到 PInvokeStackImbalance
    Message: 对 PInvoke 函数“Microsoft.ReportViewer.Common!Microsoft.ReportingServices.Rendering.ImageRenderer.CompositionPDF+WindowsGDIWrapper::GetGlyphIndicesW”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。


    关于这个问题,MS语焉不详,而其它通过修改DLL引用方法的方式对于 Microsoft.ReportViewer.Common 和 Microsoft.ReportViewer.WinForms 也是无能为力。

    近日,本人在测试程序时发现,这个问题总是在调试时发生,而程序发布之后,这个问题就不再出现了。

    做了几个小测试,发现,删除  xxxxxx.pdb (放置ReportViewer控件的)后,测试就可以顺利通过,

    问题解决了,探讨原因:调试宿主的签名与程序签名不一致,致使某些异常发生,引发这个DLL的调用错误。
  • 相关阅读:
    day10
    day 9
    day 8
    flex布局
    简单的todolist的demo
    JS中数组与对象的遍历方法实例小结
    css中animation和@keyframes 动画
    form表单相关
    Restful API接口规范
    什么是接口文档,如何写接口,有什么规范?
  • 原文地址:https://www.cnblogs.com/sasbya/p/986649.html
Copyright © 2011-2022 走看看