首页 > 解决方案 > 非托管 IPictureDisp 到托管对象

问题描述

我正在使用 VB.Net 为 Excel 工作 Api 调用 dll。(Robert Giesecke 的非托管导出)标准类型(数字、字符串)正在工作。但是,当尝试使用对象类型时返回错误。

错误消息是:“未知名称。(返回的 HRESULT 异常:0x80020006 (DISP_E_UNKNOWNNAME))”

我的功能是(错误是 IPictureDisp 到位图):


Public Function GetTextQR_FromPicture(ByVal pictureDisp As IPictureDisp) As [MarshalAs(UnmanagedType.BStr)] String
      'IPictureDisp
      Return _qrDec.decode(New QRCodeBitmapImage(PicHelper.GetPictureFromIPictureDisp(pictureDisp)), Encoding.UTF8)
End Function

我的助手类:



Friend Class PicHelper
   Inherits System.Windows.Forms.AxHost

   Friend Sub New()
      MyBase.New(Nothing)
   End Sub

   Friend Shared Shadows Function GetIPictureDispFromPicture(image As Image) As Object
      Return System.Windows.Forms.AxHost.GetIPictureDispFromPicture(image)
   End Function

   Friend Shared Shadows Function GetPictureFromIPictureDisp(picture As IPictureDisp) As Image
      Return System.Windows.Forms.AxHost.GetPictureFromIPictureDisp(picture)
   End Function
End Class

标签: vb.netdllunmanaged

解决方案


推荐阅读