VB6到.Net接口-长期以来VB6数据类型是什么?

VB6到.Net接口-长期以来VB6数据类型是什么?,.net,interface,interop,.net,Interface,Interop,我有一个带有方法和接口的.Net对象。 接口期望其中一个参数的类型为long。 问题是vb6的Long比.net的Long长。它的长度不同,因此我的vb6程序现在无法调用.net对象。 我不能破坏.net中的接口来将此更改为int,因为所有使用它的客户端都会受到影响 有什么创意吗 TY没有进一步的详细信息,简单的回答是将.NET对象包装在另一个对象中,该对象接受可以从VB6传递的参数,然后在现有对象上调用该方法时将其转换为long(根据需要) 只有有问题的程序需要使用包装器/新接口;对于所有其他

我有一个带有方法和接口的.Net对象。 接口期望其中一个参数的类型为long。 问题是vb6的Long比.net的Long长。它的长度不同,因此我的vb6程序现在无法调用.net对象。 我不能破坏.net中的接口来将此更改为int,因为所有使用它的客户端都会受到影响

有什么创意吗


TY

没有进一步的详细信息,简单的回答是将.NET对象包装在另一个对象中,该对象接受可以从VB6传递的参数,然后在现有对象上调用该方法时将其转换为long(根据需要)


只有有问题的程序需要使用包装器/新接口;对于所有其他系统,现有接口保持不变。

如果没有进一步的详细信息,简短的回答是将.NET对象包装在另一个对象中,该对象接受可以从VB6传递的参数,然后在对现有对象调用方法时将其转换为long(根据需要)


只有有问题的程序需要使用包装器/新接口;所有其他系统的现有接口保持不变。

没有直接等效接口。这里讨论了您的困境,并给出了解决方案:

大多数采用数值参数的API 应为32位值。在VB6中,这是一个 长数据类型。在VB.NET中,一个长的 64位,不适用于32位 API调用。您的.NETAPI参数 必须更改或转换为 调用前的整数数据类型 API

许多API将不再可调用 从VB和其他人将有 替代品。有些是传递字符串的 将需要调整以通过正确的 字符串或空值。检查VB.NET 帮助以获取更多信息

API将需要在一个案例中处理 以个案为基础。你最好的办法是 隔离所有API调用,以便进行更改 只需要在一个单独的 在代码中的位置。升级 工具将尝试转换API调用 通过为它们创建包装。 但是,手动干预是必要的 必需的


没有直接的等价物。这里讨论了您的困境,并给出了解决方案:

大多数采用数值参数的API 应为32位值。在VB6中,这是一个 长数据类型。在VB.NET中,一个长的 64位,不适用于32位 API调用。您的.NETAPI参数 必须更改或转换为 调用前的整数数据类型 API

许多API将不再可调用 从VB和其他人将有 替代品。有些是传递字符串的 将需要调整以通过正确的 字符串或空值。检查VB.NET 帮助以获取更多信息

API将需要在一个案例中处理 以个案为基础。你最好的办法是 隔离所有API调用,以便进行更改 只需要在一个单独的 在代码中的位置。升级 工具将尝试转换API调用 通过为它们创建包装。 但是,手动干预是必要的 必需的