gpt4 book ai didi

.net - 从 .NET 实例化非托管类

转载 作者:行者123 更新时间:2023-12-01 13:05:17 25 4
gpt4 key购买 nike

我通过 Google 找到了大量关于如何从 .NET 代码调用非托管 DLL 中的 API 函数的示例,但是如何从非托管代码实例化一个对象呢?

我目前正在修改公司想要迁移到的一个旧的遗留应用程序(我还不相信我们能够用它做任何事情,但我必须修改和研究) 。网。看来这是以前尝试过的,我现在正在研究。最常见的编译错误是对项目无法理解的旧 DLL 的引用。

其中一行代码的示例是:

Dim cAccounts As HSVMETADATALib.HsvAccounts

项目中对库的引用已损坏,我认为这是一些向导驱动的尝试将一些 pre-.NET 项目移植到 .NET 的结果。我有它正在寻找的 DLL,但添加对它的引用会返回错误:

A reference to 'HFMConstants.dll' could nto be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.

现在,我对这个 DLL 一无所知。而且我在 .NET 之前的 Windows 编程方面非常经验不足。所以我一直在网上寻找有关在此代码中使用旧 DLL 的信息,它们都集中在调用 DLL 中的 API 函数上。但是,仔细查看这段代码,它与 API 函数的关系要少得多,而与对象的关系要多得多。那么,我将如何着手实例化这些对象之一的实例?

(请注意,在这种情况下,我们甚至不知道我们是否拥有正确的源代码,没有文档,也没有关于此应用程序的所有权和维护的任何信息。但这是一个障碍能够从外部 DLL 实例化对象,这些 DLL 来自一些未知的且此时可能无法访问的第三方源,将减少大多数编译器错误并帮助我们进入更多的代码,甚至可能获得至少可编译的精简版本。)

含糊不清,但值得一问:)

最佳答案

我建议您尝试使用 Dependency Walker 打开 DLL .这应该为您提供有关 DLL 的内部结构和 API 的更多信息。

另请参阅:

引用非 CLR DLL
http://illuminatedcomputing.com/blog/?p=44

关于.net - 从 .NET 实例化非托管类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3524059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com