zoukankan      html  css  js  c++  java
  • (原)解决精伦iDR200 SDK在.NET开发环境中提示"尝试读取或写入受保护的内存"错误

    场景:

    开发环境
     WindowsXP Sp3 简体中文
            VisualStudio 2005 中文 SP1       
    接口版本
            Sdtaip.dll  Version  2006年11月15日, 9:34:36
            WltRS.dll   Version  2006年11月15日, 9:34:36
    此例程在VB下运行正常,通过VS2005升级工具自动升级到VB.net后,第一次运行正常,第二次运行后在获取身份证信息后出现出现附件中错误。

    解决过程:

       经实验:1、代码在VB项目下没有问题,但转到C#下即出现错误。

                 2、考虑可能变量声明长度、类型等与VB不同,于是转到VB.net,同样出现错误。

                 3、将SDK重新使用VB封装成OCX然后使用,VB.net,C#调用依然有错误。

                 4、偶然一次看到VB原始例子中把照片加载项注释掉了,于是尝试不加载图片,OK不再报错了。

                 5、检查在.net加载图片和不加载图片时图片文件的状态,分别不占用和不占用,找到问题所在了,VB与.net加载图片的方式不同,VB加载完成即释放,但.NET始终占用,这个应该是开发工具的机制不同。

    最终解决办法:(参考:GDI+中发生一般性错误” 的终极解决办法,没找到最原始出处

                 Bitmap bmp = new Bitmap("photo.bmp");
                 Bitmap bmp2 = new Bitmap(102, 126,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                 Graphics draw = Graphics.FromImage(bmp2);
                 draw.DrawImage(bmp, 0, 0);
                 pEditIDCard.Image = (Image)bmp2;
                 draw.Dispose();
                 bmp.Dispose();

    至此开发完成。

    感谢精伦技术部、市场部各位朋友的支持!

         

  • 相关阅读:
    Access数据库连接与Repeater数据控件绑定
    类型空间
    C# ico
    Jackson 框架,轻易转换JSON
    转 Android之项目推荐使用的第三方库,有助于快速开发,欢迎各位网友补充
    天气时段规定
    plupload
    MongoDatabase 数据访问助手类
    android开发教程21篇(版主强烈推荐,几乎每一篇都是精华教程
    Android
  • 原文地址:https://www.cnblogs.com/spymaster/p/1251952.html
Copyright © 2011-2022 走看看