我面临的情况是我有两个不同的c++项目:
我的任务是将第二个程序合并到第一个程序(插件)中,这样,一旦我在前面提到的软件中对插件进行了充电,便可以启动第二个程序,使用该程序处理数据并保存更改。所以我需要能够一起使用两个项目中的方法和类...
我一直在寻找一种合并VC++和c++构建器项目的方法后,我有些沮丧。兼容性问题是巨大的!特别是在我的案例中同时涉及到MFC和VCL。
在我看来,从任何一方进行“迁移”似乎都是不可能的,尤其是对于我是Microsoft系统编程的新手而言。因此,如果有其他选择,我会很高兴。
因此,我想请您帮助开发人员,特别是那些遇到过类似情况的开发人员。对于任何类型的答案,我将不胜感激。
随时问我任何问题以澄清此帖子。
并预先感谢您!
最佳答案
如果要与C++类接口(interface),请确保传递的数据只是基本的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/