gpt4 book ai didi

c++ - 合并一个 vc++ 和一个 c++ 构建器项目

转载 作者:太空宇宙 更新时间:2023-11-04 11:41:47 26 4
gpt4 key购买 nike

我面临的情况是我有两个不同的 C++ 项目:

  • 第一个是 VS2008 插件:一个静态链接到 MFC 的 DLL,我将把它合并到某个软件中。

  • 第二个是 C++ Builder VCL 程序:一个使用 VCL 制作的具有巨大 GUI 的程序。

我的任务是将第二个合并到第一个(插件)中,这样一旦我在我之前提到的软件中对插件进行充电,我就能够启动第二个程序,使用它处理数据,并保存变化。所以我需要能够同时使用两个项目中的方法和类......

在寻找合并 VC++ 和 C++ 生成器项目的方法后,我有点沮丧。兼容性问题是巨大的!特别是 MFC 和 VCL 都涉及到我的案例。从任何一方“迁移”对我来说似乎都是不可能的,尤其是我不熟悉在 Microsoft 系统上编程。所以如果有其他选择,我会很高兴。

因此,我请求各位开发人员的帮助,尤其是那些面临类似情况的开发人员。我将不胜感激任何类型的答案。

请随时问我任何问题以澄清这篇文章。

提前谢谢你!

最佳答案

如果您正在与 C++ 类进行交互,请确保传递的数据仅为基本的 C++ 类型,接口(interface)中不允许使用 STL、MFC 或 VCL。

然后,就可以创建接口(interface)类的纯虚类,从纯虚类派生接口(interface)类。创建两个 C 函数,一个新建 MFC 类但返回接口(interface)类,另一个从接口(interface)指针删除但实际上删除其后面的 MFC 类。

作为示例 .h 文件的一个快速示例(只是在此处提出,未测试)。这是因为两个编译器之间的虚拟接口(interface)相同。我非常一致地反向执行(在 C++Builder 中编写代码,可以在用 VC6 编写的古老 MFC 应用程序中使用)。

接口(interface)文件(包含在C++ Builder代码和MFC代码中)

class iInterface
{
public:
virtual unsigned short __stdcall DoOneThing( char * ) = 0;
virtual long __stdcall DoTwoThing( char * ) = 0;
}

iInterface * __stdcall NewcInterface();
void __stdcall DeletecInterface( iInterface * );

只包含在VC端的MFC文件

class cInterface : public iInterface
{
public:
unsigned short __stdcall DoOneThing( char * );
long __stdcall DoTwoThing( char * );

private:
void WhatEver( void );

bool x;
}

关于c++ - 合并一个 vc++ 和一个 c++ 构建器项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21095303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com