24,854
社区成员
发帖
与我相关
我的任务
分享
//B.H
#ifdef B_EXPORTS
#define EXPORT_CLASS __declspec(dllexport)
#else
#define EXPORT_CLASS __declspec(dllimport)
#endif
class EXPORT_CLASS B
{
public:
B() {};
~B() {};
void show();
};
//B.cpp
//compile:cl b.cpp /link /DLL a.lib /out:b.dll
#include <iostream>
#include "A.h"
#define B_EXPORTS
#include "B.h"
using namespace std;
void B::show()
{
A a;
cout<<"B::show is called!"<<endl;
a.show();
}
//main.cpp
//compile:cl main.cpp /link B.lib
#include <iostream>
#include "B.h"
void main()
{
B b;
b.show();
}
//A.H
#ifdef A_EXPORTS
#define EXPORT_CLASS __declspec(dllexport)
#else
#define EXPORT_CLASS __declspec(dllimport)
#endif
class EXPORT_CLASS A
{
public:
A() {};
~A() {};
void show();
};
//A.cpp
//compile:cl a.cpp /link /DLL /out:a.dll
#include <iostream>
using namespace std;
#define A_EXPORTS
#include "A.h"
void A::show()
{
cout<<"show is called!"<<endl;
}
//B.cpp
//compile:cl b.cpp /link a.lib
#include <iostream>
#include "A.h"
void main()
{
A a;
a.show();
}