我在VB6中编写了一个dll,然后保存到syswow64下,生成的dll再用Regsvr32 注册它。
然后再VB.net中,使用引用-Com,浏览到syswow64下,导入该dll。
在VB.net的工程代码中,能够imports 它,也能够使用 Dim Obj as new VB6Dll.Class.
但是,在调试运行时,就报告:
System.BadImageFormatException HResult=0x8013101B
Message=未能加载文件或程序集“Interop.VB6ImgTool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
我按照网络上的有关解决方案,比如更改Any CPU变成x86,再重启,然后不奏效。
请问,这种问题有什么有效的解决方案不?
可以先測試 vb6 來引用該 dll 看看是否正常。
如果該 dll 引用了其他 dll,就需要在一台空的 windows 機器測試。
備註:
很多系統已經不再支持某些舊 dll 的某些操作。
微軟已經不再支持 vb6 ide (runtime "應該“ 還可以使用)。
就算有源碼,也很難查問題。可能需要用 .net 重新寫。
最好是从VB6迁移到VB.net.
可以先检查你的VB6 dll引用的其他dll是不是在VB.NET里不支持。
如下图所示,VB6中编写的dll,其又引用了其他dll。但是,其他的dll,在vb.net环境中不能使用。