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的调用错误。
  • 相关阅读:
    Notepad++编写Markdown
    解决Unable to create new native thread
    Outlook2016 新装进阶操作指南
    卷积神经网络
    反向传播算法
    神经网络的基本组成
    cs231n课程索引
    快速入门特征工程
    快速入门Sklearn
    快速入门Matplotlib
  • 原文地址:https://www.cnblogs.com/sasbya/p/986649.html
Copyright © 2011-2022 走看看