两种应用的包装模块

问题描述

我有两个静态库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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...