问题描述
我有两个静态库Lib-1和Lib-2。 Lib-1用于Windows,而Lib-2用于Linux。我也有两个应用程序App-1和App-2,它们可以移植到Windows和Linux中。根据运行应用程序的平台,两个应用程序都需要访问Lib-1或Lib-2。目的是应用程序应该包装Lib-1和Lib-2实现(类似于包装器),并且应该可以轻松地为Windows和Linux配置。
情况与下面类似
Third Party Lib-1 (Windows)
---------------------------
void CalculateForLinux();
Third Party Lib-2 (Linux)
--------------------------
void CalculateForWindows();
Application-1 (Portable for windows and linux) - Currently running for Windows
----------------------------------------------
Class WrapperLib {
int m_platform; //0 for linux and 1 for windows
WrapperLib(int platform) : m_platform(platform);
public:
Calculate() {
if (m_platform) {
CalculateForWindows();
}
else {
CalculateForLinux();
}
}
}
SomeFunctionInApp1()
{
WrapperLib lib(1); //for windows
lib.Calculate();
}
And Application 2 Code below
Application-2 (Portable for windows and linux) - Currently running for Windows
----------------------------------------------
Class WrapperLib {
int m_platform; //0 for linux and 1 for windows
WrapperLib(int platform) : m_platform(platform);
public:
Calculate() {
if (m_platform) {
CalculateForWindows();
}
else {
CalculateForLinux();
}
}
}
SomeFunctioninApp2()
{
WrapperLib lib(1); //for windows
lib.Calculate();
}
这里是否可以用更好的方式编写这种情况?
我需要避免在应用程序1和2中编写包装器实现。是否有更好的方法来实现这一目标?使包装器实现本身成为一个库该怎么办?因此,它将是一个图书馆,而不是一个图书馆。这是个好方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)