小编Som*_*ude的帖子

.NET 4.8 - 使用参数化属性编写 COM 库

我正在致力于迁移使用 regsvr32 注册并主要在 vbscript 和 ASP Classic 中使用的旧版 VB6 COM 库。

新的 .NET 4.8 替代库已通过 regasm 注册。

一切都很好,直到我遇到了一些无法直接迁移的功能,因为我在这个领域没有足够的知识。

旧版 VB6 库具有以下 Typelibrary 代码(来自 OleView,为方便起见进行了缩减):

[id(0x00068), propget] 
VARIANT_BOOL IncomeOverride([in] short index);
[id(0x00068), propput] 
void IncomeOverride(
    [in] short index,
    [in] VARIANT_BOOL rhs
);
[id(0x00069), propget] 
CY IncomeOverrideAmt([in] short index);
[id(0x00069), propput] 
void IncomeOverrideAmt(
    [in] short index,
    [in] CY rhs
);
Run Code Online (Sandbox Code Playgroud)

调用者使用这些方法如下:

oTest.IncomeOverride(1) = True
oTest.IncomeOverrideAmt(1) = 12
Run Code Online (Sandbox Code Playgroud)

首先我尝试使用属性。但由于 C# 中没有可用的参数化属性,我不得不尝试如下方法:

[DispId(0x00068)]
bool IncomeOverride([In] short index);
[DispId(0x00068)]
void IncomeOverride([In] short index, [In] bool …
Run Code Online (Sandbox Code Playgroud)

.net c# vb6 com ole

5
推荐指数
0
解决办法
119
查看次数

标签 统计

.net ×1

c# ×1

com ×1

ole ×1

vb6 ×1