我正在研究一个应用程序,它具有多个用VB6编写的dll。 VB6代码包括COM dll和ocx控件。其余的代码是C++和C#。我已被分配任务使应用程序代码库与64位体系结构兼容。对于C/C++代码,可以使用大量的帮助资料,因此这不是问题。但将所有这些vb6代码重写为.net或其他语言以使其与64位兼容并不容易。我也不理解所有的基础逻辑,所以只是假设重写是没有问题的。从64位应用程序加载/与vb6 COM DLL进行交互
另外,我们都知道,VB6的DLL在64位环境中无法正常工作。那么我有什么选择。
1)隐蔽每个DLL的进入,这将在32位被加载一个EXE,它可以通过COM接口与我的64位应用程序的其余部分交互。你有没有预见到这种方法的任何问题?
2)我编辑注册表并加载所有的DLL VB6出的过程中,使他们在DLLHOST加载。
3)制作一个单一的32位exe文件,引用该exe文件中的所有这些VB6 dll文件,并在32位地址空间中加载该exe文件,并且我的应用程序的64位部分与32位exe文件进行通信。
这使我想起了所有上述方法的主要问题是做什么用OCX控件????
任何想法? 如果没有新的想法,而不是上面提到的哪一个将会被你所偏好,为什么?
你有没有想出如何使用COM做64之间的通信,以32?看起来似乎会有某种不匹配。 – 2009-05-21 17:42:12
Nopes,我还没有开始任何实验,但会在我遇到任何成功或失败时立即更新。 – Paragon 2009-05-22 06:34:15