weixin_44526895 2021-05-29 19:58 采纳率: 66.7%
浏览 226
已结题

两个文件dll被隐式导入想要的类后 在各自namespace里无法调用类里面的静态函数对象

本人最近想做一个项目

其中 文件A.dll里面和B.dll里面有相同的类名,类里面的方法也基本相同 但还是有差异 于是本人再用隐式方法将他们分别导入后 为了防止重复编辑 采用命名空间namespace分别将他们分开  但是再实例化的时候 静态的函数不能解析 报错lnk2019  

 

//文件A.h

#pragma comment(lib,"A.lib")
#if !defined(TEST_A_H)
#define TEST_A_H

namespace MyspaceA {
    #if defined(ISLIB) && defined(WIN32)
	#ifdef LIB_TEST_A_EXPORT
	#define TEST_A_EXPORT __declspec(dllexport)
	#else
	#define TEST_A_EXPORT __declspec(dllimport)
	#endif
	#else
	#define TEST_A_EXPORT 
	#endif

class TEST_A_EXPORT Test
	{
	public:

		static TestA* testFunc(const char* var = "");

    ...
    }
}

//文件B.h

#pragma comment(lib,"B.lib")
#if !defined(TEST_B_H)
#define TEST_B_H

namespace MyspaceB {
    #if defined(ISLIB) && defined(WIN32)
	#ifdef LIB_TEST_B_EXPORT
	#define TEST_B_EXPORT __declspec(dllexport)
	#else
	#define TEST_B_EXPORT __declspec(dllimport)
	#endif
	#else
	#define TEST_B_EXPORT 
	#endif

class TEST_B_EXPORT Test
	{
	public:

		static TestB* testFunc(const char* var = "");

    ...
    }
}


//再调用的文件中C.h 
namespace MyspaceA {
    class RunA
        {
            public:
            void run();

        }
}


// C.cpp
using namespace MyspaceA;
void RunA::run(){
    
    TestA::testFunc()
}

//再调用的文件中D.h 
namespace MyspaceB {
    class RunB
        {
            public:
            void run();
     

        }
}

// D.cpp
using namespace MyspaceB;
void RunB::run(){
    
    TestB::testFunc()
}



//main.cpp
#include "A.h"
int{
    using namespace MyspaceA;
    run = RunA();
    run.run();
    return 0;
}


报错就是LNK2019 说无法解析TestA* testFunc(const char* var = "")...

  • 写回答

6条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 VS2019不能设置QT的verson了,设置了点确定又消失了,怎么解决呢?
      • ¥15 用java解决,要解释一下给我
      • ¥100 项目经理想学开发牛牛指点迷津有偿
      • ¥15 vscode 配置时出现问题
      • ¥15 pygame安装失败
      • ¥15 数据库原理怎么从文字描述中的句子推出(分析)函数依赖?
      • ¥15 想要使用有序logistic模型,因变量收集结果为以下,可以继续分析吗?
      • ¥15 C语言的问题 求尽快解答一下
      • ¥15 sql相关子查询的一道选择题
      • ¥15 关于图像检测的问题#