请教一个DLL中导出头文件的问题,谢谢!

rabbit729 rabbit729 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请教一个关于DLL的问题?

/***********Test1.h*****************/

class Test1{
public:
Test1();
~Test1();

void DisplayTest1();
};

/**********Test1.cpp*****************/
#include <iostream>
using namespace std;

#include "Test1.h"

Test1::Test1()
{

}

Test1::~Test1()
{

}

void Test1::DisplayTest1()
{
cout<<"Test1"<<endl;
}

下面是我的DLL的头文件
/************DllTest.h***********/
#ifdef DLL1_API
#else
#define DLL1_API _declspec(dllimport)
#endif

#include "Test1.h"

class DLL1_API DllTest{
public:
DllTest();
~DllTest();
void DisplayDllTest();
void DisplayDllTest1();

private:
Test1 m_test1;
};

/***********DllTest.cpp***********/
#define DLL1_API _declspec(dllexport)

#include <iostream>
using namespace std;

#include "DllTest.h"

DllTest::DllTest()
{

}

DllTest::~DllTest()
{

}

void DllTest::DisplayDllTest()
{
cout<<"DllTest"<<endl;
}

void DllTest::DisplayDllTest1()
{
m_test1.DisplayTest1();
}

我使用如下代码来使用这个DLL
#include <iostream>
using namespace std;
#include "DllTest.h"

void main()
{
DllTest test;
test.DisplayDllTest();
test.DisplayDllTest1();
char a;
cin>>a;
}

编译时提示找不到"Test1.h",如果我把Test1.h添加至测试程序中就可以解决,我的问题是这种情况下是不是必须把Test1.h
提供给DLL的使用者,如果这样的话感觉挺别扭的,我只想提供DllTest.h,DllTest.lib DllTest.dll
请问如果想只提供这三个文件该如何解决?我不想把所有的类定义都放在DllTest.h中,所以这种方法就不要说了,谢谢各位!
...全文
评论 4
收藏 已收藏
分享
返回顶部
rabbit729
进程/线程/DLL 15,466 成员 49,169 内容