如何解决两种应用的包装模块
我有两个静态库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 举报,一经查实,本站将立刻删除。