COM->.NET - 无法访问重载方法

2023-12-11

我正在尝试访问 .Net 库(图像调整器)来自 COM(jscript)。

我已经尝试过 IDispatch 和类接口生成,以及相关类上的 [ClassInterface( ClassInterfaceType.AutoDual)] 。

有一个方法有 3 个重载:

Bitmap Build(object, ResizeSettings settings)
void Build(object source, object dest, string settings)
void Build(object source, object dest, ResizeSettings settings)

Calling

Build("file",s); //works

以下两者都会生成“参数数量错误或属性分配无效”(JScript 运行时错误)

Build("file","file", s) 
Build("file","file","settings

我找不到任何理由认为重载不能通过互操作工作,特别是当参数计数不同时。 我错过了什么吗?

更新:这是方法定义的完整代码。第二个过载是无法访问的。不仅仅是这些方法 - 在每个重载方法中,我似乎只能访问第一个重载。这是一个未记录的 COM 错误/设计缺陷吗?

    /// <summary>
    /// Provides methods for generating resized images, and for reading and writing them to disk.
    /// Use ImageBuilder.Current to get the current instance (as configured in the application configuration), or use ImageBuilder.Current.Create() to control which extensions are used.
    /// </summary>
    public class ImageBuilder : AbstractImageProcessor, IQuerystringPlugin
    {


        /// <summary>
        /// Resizes and processes the specified source image and returns a bitmap of the result.
        /// This method assumes that transparency will be supported in the final output format, and therefore does not apply a matte color. Use &amp;bgcolor to specify a background color
        /// if you use this method with a non-transparent format such as Jpeg.
        /// </summary>
        /// <param name="source">May be an instance of string (a physical path), VirtualFile, IVirtualBitmapFile, HttpPostedFile, Bitmap, Image, or Stream.</param>
        /// <param name="settings">Resizing and processing command to apply to the.</param>
        public virtual Bitmap Build(object source, ResizeSettings settings) {
            BitmapHolder bh = new BitmapHolder();
            Build(source, bh, settings);
            return bh.bitmap;
        }

        /// <summary>
        /// Resizes and processes the specified source image and stores the encoded result in the specified destination. 
        /// </summary>
        /// <param name="source">May be an instance of string (a physical path or app-relative virtual path), VirtualFile, IVirtualBitmapFile, HttpPostedFile, Bitmap, Image, or Stream. app-relative virtual paths will use the VirtualPathProvider system</param>
        /// <param name="dest">May be a physical path (string), or a Stream instance. Does not have to be seekable.</param>
        /// <param name="settings">Resizing and processing command to apply to the.</param>
        public virtual void Build(object source, object dest, ResizeSettings settings) {
            ResizeSettings s = new ResizeSettings(settings);

确实,COM 不“执行”方法重载。

但。看http://msdn.microsoft.com/en-us/library/ms182197(v=vs.80).aspx .

这是静态分析工具 FxCop 的文档页面。但其中有一些信息对 COM 开发人员很有用:

当重载方法暴露给 COM 客户端时,只有第一个方法重载保留其名称。后续重载通过在名称后附加下划线字符“_”和与重载声明顺序相对应的整数来唯一重命名。

并且还看到
COM 互操作 (CCW) 中的重载 - IDispatch 名称包括后缀(_2、_3 等)

因此,通过 COM 层,您可以使用以下命令调用原始方法

Build_2("file", "file", s);
Build_3("file", "file", settings);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

COM->.NET - 无法访问重载方法 的相关文章

  • D3.js分组条形图

    I am making a bar chart using D3 js like this source statcan gc ca http www statcan gc ca pub 12 593 x 2007001 figures f
  • OpenLayers:放大或缩小后,被破坏的特征会重新出现

    我有一个 OpenLayers Bing 地图应用程序 可以显示危险废物站点 用户可以单击链接来切换地图上站点的子站点 当我通过调用层上的 destroyFeatures 来关闭子站点 它们是向量层上的点 时 它们会按预期消失 但是 如果我
  • 没有函数或 json 的 JavaScript 大括号

    刚刚打开客户端的 javascript 文件 第一行是这样的 var s account blog 我不明白 通常 根据我的经验 花括号包裹着一个函数 function welcome or a json JavaScript object
  • Cypress:在 JSON 响应中存根特定键

    我想在 Cypress 中存根以下响应 专门存根密钥ds version 可能的值为 0 1 或 2 每个值将在 UI 上显示不同的元素 fixtures user json email email protected cdn cgi l
  • 检查复选框是否被选中? [复制]

    这个问题在这里已经有答案了 如何通过 jQuery 检查复选框是否被选中 我可以只向元素添加 ID 或类并执行此操作吗 if element val 1 do stuff if element is checked checkbox is
  • contenteditable,在文本末尾设置插入符号(跨浏览器)

    输出在Chrome div style border 1px solid 000 width 500px height 40px hey div what s up div div div div
  • 如何使用 LeafLe 创建商店地图

    我希望创建一个可以交互的地图 我发现的最好的选择是传单 问题是我没有找到任何资源来解释如何创建自己的地图 我希望创建一个商场地图 用户可以在其中看到所有商店 喷泉 我怎样才能做到这一点 最好的起点是传单示例页面 http leafletjs
  • 如何在 Javascript 中获取时区名称(PDT、EST 等)? [复制]

    这个问题在这里已经有答案了 使用 Javascript 有没有办法根据用户的设备获取用户的时区名称 PDT EST 等 我尝试过的代码 const timezone jstz determine const userTimezone tim
  • jQuery 模式窗口从我的表单中删除元素

    jQuery 当我用它创建一个包含表单元素的模式窗口时 当我提交表单时 它会取出这些元素 表格示例
  • javascript - 动态变量

    您好 我正在尝试创建动态变量 但它说 变量 v0 到 v5 未定义 td each function i eval var v i this html 任何帮助将不胜感激 这听起来是个坏主意 你有什么理由不能这样做吗 var tdHtml
  • JavaScript 对象镜像/单向属性同步

    出于安全目的 我需要一个 镜像 对象 也就是说 如果我创建对象 A 并浅克隆 A 的副本并将其称为 B 则每当 A 的属性发生更改时 我希望 B 自动更新自身以反映更改 但反之则不然 换句话说 单向属性同步 我的问题 是否已经存在我不知道的
  • Node 和 General 中的 MVC:模型如何与视图绑定?

    我从 node js 开始 正在制作一个简单的 MVC 框架 到目前为止 我已经有一个前端控制器 或 调度程序 如果你愿意的话 可以工作 路由通过调度程序配置模块进行 如图所示 我的问题在最后 紧接代码之后 另外 这是学习node的练习 请
  • 在气球内显示带有照片的多个地标的最佳做法是什么?

    我有一个项目如下 从手机上拍摄几张照片 将照片保存在网络系统中 然后将照片显示在其中的谷歌地球上 我读过很多文章 但它们都使用 fetchKml 我读过的一篇好文章是使用 php 但使用 fetchKml 我不知道是否可以使用 parseK
  • JSLint 错误:意外的“这个”

    无法理解为什么 JSLint 对我的使用感到惊讶this在下面的代码中 function testConstr x use strict this joker Whyyy sooo seriousss this x x 对于这两个属性分配
  • Antd 选择搜索框未呈现匹配项

    我有产品数据 我正在使用搜索值过滤数据 然后使用过滤后的数据呈现选项 产品数据作为道具来自全局 redux 存储 由于某种原因 下拉列表仅在搜索值为空时显示数据 当我开始输入时 filteredData已更新 组件也重新渲染 但选项不显示任
  • 将 DIV 转换为单击并拖动视口

    有人知道一种不显眼的 基于原型或无框架的方法将具有大内容 例如地图 的 DIV 转换为具有固定尺寸的可点击和可拖动的 地图 容器 非常像 Google 地图 我想在大型输入表单中显示 HTML 块 这些块可能会超出可用空间 每个块可以有大约
  • 如何在javascript中删除一组表情符号中的最后一个表情符号?

    假设我的字符串中有 3 个表情符号 字符串中没有任何空格或除表情符号之外的任何其他字符 如何删除javascript中最后一个表情符号 下面的答案不使用任何特殊的包并安全地删除最后一个表情符号 function safeEmojiBacks
  • 如何使用 Javascript 从 Chrome iOS 下载 blob 文件?

    如何使用 Javascript 从 Chrome iOS 下载 blob 文件 我正在从 iOS 下载文件 pdf excel txt png iOS 没有文件系统 这对下载来说是一个问题 我创建了一个代码 根据操作系统和导航器 如果需要
  • 在状态中检测到不可序列化的值,路径为:`filters.startDate` (redux-toolkit.esm.js )

    我正在使用 React 18 和 Redux 构建一个预算应用程序 我不知道这里有什么问题 import moment from moment const filtersDefaultState text sortBy date start
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同

随机推荐

  • 右浮动和绝对位置不能一起工作

    我希望 div 始终位于其父 div 的右侧 所以我使用float right 有用 但我也希望插入时不影响其他内容 所以我使用position absolute Now float right不起作用 我的 div 始终位于其父 div
  • 如何让 UITextView 检测网站、邮件和电话号码的链接

    我有一个 UITextView 对象 UIView 中的文本有电话号码 邮件链接 网站链接 我想将它们显示为具有以下功能的链接 当有人点击 URL 时 Safari 应打开该网站 当有人点击电子邮件链接时 邮件应该打开 并且我的地址位于字段
  • 将 CCMenu 与网格对齐

    有谁知道让 CCMenuItems 数组与网格对齐的最佳实践方法 这是一个cocos2d问题 例如 int levelCount 10 CCMenu menuArray CCMenu menuWithItems nil for int x
  • 使用ajax设置PHP会话变量

    想要更改 SESSION 变量 fullname 的值而不刷新页面 我使用ajax的实现 第 1 页 html
  • java swing应用程序中的快速搜索?

    我正在思考什么组件最适合在 swing 中显示快速搜索结果 我想创建这样的东西 创建一个文本字段 用户可以在其中输入一些文本 在输入过程中我将改进数据库的后端快速搜索 并且我想在文本框下方显示数据 他将能够浏览结果并按输入结果将显示在表格中
  • 在ASP.NET中添加动态控件,1.1和2.0有区别吗?

    我非常确定在 ASP NET 1 0 1 1 时代 需要在运行时创建的控件之前添加Page Load事件的页面生命周期 即里面Page Init 这是 Microsoft 的一篇文章 针对 NET 1 0 1 1 如何 在 ASP NET
  • 将 UWP 应用上传到 Windows 应用商店时出错:无法合并 PRI 文件 \Resources_split.scale-100.pri

    我正在将应用程序的最新版本上传到 Windows 商店 但我的应用程序抛出错误 包接受验证错误 我们遇到了致命错误 解析包时 MyApp UWP 2 33 0 0 x86 x64 ARM AppStore appxbundle 失败 合并
  • java中txt文件格式验证

    验证 txt 文件是否为以下内容的最佳方法是什么 事实上 是一个 txt 文件 而不是其他类型的文件 仅更改了扩展名 txt 文件的格式与指定的格式匹配 因此能够正确解析 包含所有相关信息等 这一切都是在 Java 中完成的 其中将检索文件
  • 未捕获的引用错误:..未定义..但我可以在错误字符串中看到该变量

    这行代码var sTest 返回 未捕获的引用错误 未定义 对于这个问题 如果我们假设我传递的 ID 为 ABC 当我使用 Chrome 中的开发人员工具并检查资源时 我可以看到 GEThas有效 因为它显示了变量值 本例中的错误消息是 未
  • 在mysql中使用单个where条件和单个关键字搜索表的所有列

    我有一个由 64 个不同字段组成的表 我将使用其中的单个关键字进行搜索 结果应与任何字段中的关键字匹配 给一些建议 SELECT FROM some table WHERE CONCAT WS column1 column2 column3
  • 在 Delphi 中通过名称获取类

    我想编写一个接受类名并产生相应结果的函数TClass 我注意到 System Classes GetClass如果类名未注册 该函数将不起作用 Example if GetClass TButton nil then ShowMessage
  • 使用 JavaScript 更改图像源

    所以我是 JavaScript 新手 这实际上是我第一次尝试让某些东西发挥作用 并且我遇到了一些麻烦 我以为我有足够的知识来完成这项工作 我什至在谷歌上搜索了可以帮助我解决这个问题的教程和脚本 但没有任何真正的帮助 我似乎无法更改图像源 这
  • 用户变量和系统变量有什么区别?

    用户变量之间有什么区别 例如PATH TMP等等和系统变量 我不小心删除了用户变量PATH 我应该做些什么 右键单击 我的电脑 然后转到 属性 gt 高级 gt 环境变量 上面是用户变量 下面是系统变量 在为应用程序创建环境时将组合这些元素
  • mysql 在序列化数组中选择查询

    我将项目列表存储在数据库字段中的序列化数组中 我使用的是 PHP MySQL 我想要一个查询 该查询将选择包含数组中这些项目中的特定一项的所有记录 像这样的事情 select from table WHERE an item in my a
  • Darkflow - 没有名为“darkflow.cython_utils.cy_yolo_findboxes”的模块

    我已成功安装 darkflow 1 0 0 https github com thtrieu darkflow 在 Windows 10 上使用pip install 命令 Successfully built darkflow Insta
  • 使用 WebForms 进行 ASP.NET URL 路由 - 使用 SiteMap

    我正在尝试在现有的 ASP NET WebForms 站点中使用 Url 路由 谢谢 这个链接 我成功了 现在我尝试将站点地图与我的路由一起使用 我有一个页面 MyReport aspx 它位于站点地图中并直接访问页面 工作正常 我添加了
  • 使用 MPAndroidChart 在条形图中的时间轴轴上绘制数据值

    我想在类似于 iOS 的 健康 应用程序的 Android 应用程序中绘制条形图 Here are screenshots 我尝试使用绘图MPAndroid图表 我已经看到该库中给出的示例 但无法按照我的要求进行绘制 我能够显示 1 年图的
  • 重写透明重定向到子文件夹的规则

    我希望为 apache 编写一个重写规则 以便像这样的请求http www domain com subfolder1将重定向到http www domain com subfolder2 这应该透明地发生 即 浏览器中的 url 不会更改
  • 连接绘图标题中的字符串和表达式

    如何在绘图标题中结合文本和数学表达式 如果我使用粘贴 表达式将转换为字符 例如我想要这样的标题 S 2 的 ARL 1 曲线 谢谢 你想读 plotmath看看如何做这种事情 这是一个例子 plot 1 10 main expression
  • COM->.NET - 无法访问重载方法

    我正在尝试访问 Net 库 图像调整器 来自 COM jscript 我已经尝试过 IDispatch 和类接口生成 以及相关类上的 ClassInterface ClassInterfaceType AutoDual 有一个方法有 3 个