我有一个在VS2003中开发的旧vb应用程序。我小心地将其升级为2015年版。此应用程序使用一些COM库。当我尝试构建应用程序时,它会给出一个错误:
Severity Code Description Project File Line Suppression State
Error BC30002 Type 'AxMSForms.AxImage' is not defined
我发现一些名为AxMSForms.dll的dll导致了此问题。从哪里获取这些COM库文件。
如果问题不清楚,请随意提问。
我确信,当您将对ActiveXOCX
文件的引用添加到VB.NET(或C#(项目时,Visual Studio会自动创建Ax.....dll
文件。
您应该尝试从项目中删除并重新添加对OCX的引用。这可能会使Visual Studio重新生成包装DLL。这在过去一直对我有效。
解释:
ActiveX控件总是(?(打包在OCX
文件中,该文件只是COM DLL的一种类型,因此它使用COM对象来表示它提供的控件。
.NET代码不能直接利用COM对象,因此开发工具将创建包装类,为您提供对它们的访问。OCX DLL是一种特殊情况,因为Visual Studio不仅会提供COM包装,还会提供将ActiveX控件映射到Windows窗体控件的包装。这就是丢失的AX DLL所包含的内容。