我是一名长期使用Delphi的程序员,已经交付了一个较旧的VB应用程序以与Win7兼容。 (自从DOS时代以来,我没有触及任何基本物种,所以我是VB / VS 2010的新手 - 我参加了初学者DevU培训,并掌握了与Delphi相比的VB语法基础知识,但是关于VS和.NET如何将这些代码整合到一个应用程序中的变幻无常的线索。)代码在WinXP下运行良好多年,但它做了一些事情(注册表写入,存储在EXE文件夹中的cfg文件)等等。)Win7在这里玩耍。
该应用程序引用一组程序集,这些程序集提供控制某些工业设备的服务。这些的DLL在Windows \ System32中,所以应该找到它们;我尝试在它们上运行regsvr32以查看它们是否需要注册,但它们缺少服务器入口点。这些对象在frmMain.Designer.vb的InitializeComponent()子实例中实例化:
Me.AxDiamondctrl1 = New AxDIAMONDCTRLLib.AxDiamondctrl()
Me.AxDiamondsetupctrl1 = New AxDIAMONDSETUPCTRLLib.AxDiamondsetupctrl()
然后,在ApplicationEvents.vb的Me.Startup处理程序中,调用了几个汇编方法来初始化事物:
frmMain.AxDiamondctrl1.InitLowerLayer()
frmMain.AxDiamondsetupctrl1.InitCore()
问题:实例化调用在InitializeComponent()处理程序中以及实例化主窗体上众多可视组件的所有调用。但是,在启动时,主窗体显示为空白,没有任何可视组件(菜单,工具栏,按钮等)我无法在调试器中跟踪它,也无法在窗体设计器中查看窗体一些未知的原因,但似乎InitializeComponent()处理程序要么没有被调用或异常,并且由于代码在WinXP下工作,我假设它是后者。并且因为表单对象中的控件实例是nil,所以Startup处理程序中的引用会抛出异常。
为什么这些不能正确加载?
谢谢! 史蒂夫