我有一个名为DBGPRINT的调试宏,我通过点击我感兴趣的项目>>为我的解决方案添加了一个新类(包括.cpp和.h文件)。添加新项>>将我的代码复制到该文件中,我包含了标题,当宏DBGPRINT看起来像这样时,它都正确编译没有问题:
#include <My_class_full_path.h>
static char str[256];
#define DBGPRINT(...) { sprintf_s(str, 190, "P:%08X ", GetCurrentThreadId() ); sprintf_s(str+11, (2048 - 11), __VA_ARGS__); OutputDebugStringA(str)}
我的班级在My_class_full_path.H标题中。这个类实际上是一个singelton,我想在DBGPPRINT宏中调用它的实例,所以当我这样做时:
#define DBGPRINT(...) { sprintf_s(tempStingFordebug+11, (256 - 11), __VA_ARGS__); my_class::getInstance(); OutputDebugStringA(tempStingFordebug)}
我收到很多LNK2019错误:
Error 1 error LNK2001: unresolved external symbol ...
3个点是我解决方案中其他项目的函数名称。
带有DBGPRINT函数的文件几乎包含在我的解决方案中的每个源文件中。
我在互联网上看到了在链接器中包含内容的解决方案,但它是我创建的一个简单的头文件,所以我不明白什么似乎是问题......
编辑: 问题已解决:使用__declspec(dllimport)和__declspec(dllexport)将我的类导出到其他DLL