通过谷歌我找到了很多关于如何在.NET代码中调用未托管DLL中的API函数的示例,但是如何从该未托管代码实例化一个对象呢?
目前我正在尝试处理公司的旧遗留应用程序(我还没有被说服我们能够对此做任何事情,但我必须进行尝试和研究),公司想要将其迁移到.NET。看起来以前曾经尝试过,我正在浏览相关内容。最常见的编译错误是对项目不理解的旧DLL的引用。
其中一行代码的示例为:
在该项目中存在对库的引用错误,我认为这是一些向导驱动的尝试将一些预先.NET项目移植到.NET的结果。我有它正在寻找的DLL文件,但添加对它的引用会返回以下错误:
“无法添加对'HFMConstants.dll'的引用。请确保文件可访问,并且它是有效的程序集或COM组件。”
现在,我对这个DLL一无所知。而且我在之前的Windows编程方面经验非常少。因此,我一直在网上寻找关于如何在此代码中使用旧DLL的信息,但所有信息都侧重于调用DLL中的API函数。然而,在查看此代码时,它与API函数的关系要小得多,更多地涉及对象。那么,我应该如何实例化其中一个对象呢?
(请注意,这是其中一种情况,我们甚至不知道我们是否拥有正确的源代码,没有文档,关于此应用程序的所有权和维护都是建立在持久性基础上的。但是,能够从外部DLL中实例化对象,这些DLL来自某个未知的、潜在的无法访问的第三方来源,将减少大部分编译器错误,并帮助我们进入代码的更多内容,可能甚至获得一个简化版本,至少可以编译。)
目前我正在尝试处理公司的旧遗留应用程序(我还没有被说服我们能够对此做任何事情,但我必须进行尝试和研究),公司想要将其迁移到.NET。看起来以前曾经尝试过,我正在浏览相关内容。最常见的编译错误是对项目不理解的旧DLL的引用。
其中一行代码的示例为:
Dim cAccounts As HSVMETADATALib.HsvAccounts
在该项目中存在对库的引用错误,我认为这是一些向导驱动的尝试将一些预先.NET项目移植到.NET的结果。我有它正在寻找的DLL文件,但添加对它的引用会返回以下错误:
“无法添加对'HFMConstants.dll'的引用。请确保文件可访问,并且它是有效的程序集或COM组件。”
现在,我对这个DLL一无所知。而且我在之前的Windows编程方面经验非常少。因此,我一直在网上寻找关于如何在此代码中使用旧DLL的信息,但所有信息都侧重于调用DLL中的API函数。然而,在查看此代码时,它与API函数的关系要小得多,更多地涉及对象。那么,我应该如何实例化其中一个对象呢?
(请注意,这是其中一种情况,我们甚至不知道我们是否拥有正确的源代码,没有文档,关于此应用程序的所有权和维护都是建立在持久性基础上的。但是,能够从外部DLL中实例化对象,这些DLL来自某个未知的、潜在的无法访问的第三方来源,将减少大部分编译器错误,并帮助我们进入代码的更多内容,可能甚至获得一个简化版本,至少可以编译。)