32 位 *.ocx 文件到 IDL 文件到 *_h.h 和 *_i.c 文件转换为 64 位 *.ocx 文件
32 bit *.ocx file to IDL file to *_h.h and *_i.c file converted to a 64 bit *.ocx file
这很复杂,所以我可能会马上失去一些你。我们有一个很久以前从供应商那里购买的 32 位 activex 控件,用于使用 Visual c++ 6.0 开发的内部程序。现在,我们将使用 Visual Studio 2013 更新我们的程序,以同时拥有 32 位和 64 位平台。供应商不再支持 c++,也没有此 activex 文件的 64 位版本。我能够使用 Visual Studio 2013 32 位构建软件,并且 activex 控件运行良好。但是,由于平台差异,使用 64 位构建软件,除了需要 activex 控件的部分外,该软件都可以正常工作。
现在我 运行 OLE/COM 对象查看器 (OleView.exe) 并成功地从 activex ocx 文件创建了一个 IDL 文件。然后,我能够编译 IDL 文件(经过一些调试)以创建 *_h.h 和 *_i.c 文件。
问题:有没有一种简单而优雅的方法来获取这些文件并在 64 位平台上重建 activex?
您不能只重新编译构成 OCX 接口的头文件和 .c 文件来创建 64 位 OCX。 OCX 由接口文件和许多其他文件组成,这些文件是控件的实现。照原样去做是行不通的。
这很复杂,所以我可能会马上失去一些你。我们有一个很久以前从供应商那里购买的 32 位 activex 控件,用于使用 Visual c++ 6.0 开发的内部程序。现在,我们将使用 Visual Studio 2013 更新我们的程序,以同时拥有 32 位和 64 位平台。供应商不再支持 c++,也没有此 activex 文件的 64 位版本。我能够使用 Visual Studio 2013 32 位构建软件,并且 activex 控件运行良好。但是,由于平台差异,使用 64 位构建软件,除了需要 activex 控件的部分外,该软件都可以正常工作。 现在我 运行 OLE/COM 对象查看器 (OleView.exe) 并成功地从 activex ocx 文件创建了一个 IDL 文件。然后,我能够编译 IDL 文件(经过一些调试)以创建 *_h.h 和 *_i.c 文件。 问题:有没有一种简单而优雅的方法来获取这些文件并在 64 位平台上重建 activex?
您不能只重新编译构成 OCX 接口的头文件和 .c 文件来创建 64 位 OCX。 OCX 由接口文件和许多其他文件组成,这些文件是控件的实现。照原样去做是行不通的。