【问题标题】:DLL export and interface for DLL in Visual C++Visual C++ 中 DLL 的 DLL 导出和接口
【发布时间】:2014-03-22 15:22:01
【问题描述】:

我有两个Visual C++ 项目(在 Visual Studio 2008 环境中),其中一个必须使用其他类和功能。所以我找到了this,这很好理解,但我有一点需要澄清。

假设第一个项目是ProjA,第二个项目是ProjBProjB 需要使用类和函数。 ProjA 正如我在开头所说的那样。但是这两个项目之间必须只有一个接口,它是一个像这样的简单对象:

class A
{
public:
   void write(data);
   void read (data);
}

所以这一定是ProjB必须使用的接口类,但是在ProjA调用write函数之后,有很多操作是在单独的cpp文件和其他类和函数中完成的......

所以我的问题是我是否需要仅为class A 使用dllexport 功能,还是必须在ProjA 内部使用的所有其他类和函数定义中使用它们?以及如何编写接口文件?

真的谢谢...

【问题讨论】:

  • 我的回答有帮助吗?

标签: c++ visual-c++ visual-studio-2008 dll dllexport


【解决方案1】:

仅将dllexport 用于A 类,前提是data 参数的类型不是ProjA 中定义的另一个类。

当一个类被“导出”时,该类的所有代码停留在它的DLL中。如果 ProjB 对 ProjA 类一无所知,它应该可以工作。

确保两个 Dll 保持同步(构建选项、C 运行时的类型...)

【讨论】:

  • 抱歉,我刚刚注意到您的回答,谢谢。所以据我了解,我还必须提供数据的定义?
  • @user2955554 如果data是一个类类型,有它自己的方法,被ProjB中的代码使用,并且如果这些方法在编译成ProjA的ccp文件中实现,那么你还必须导出 data 类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
  • 1970-01-01
  • 2010-11-15
相关资源
最近更新 更多