我无法导出课程:
#ifndef SDBIDI
#define SDBIDI
#ifndef SDBIDI_FLAG
#define SDBIDI_ORIENT __declspec(dllimport)
#else
#define SDBIDI_ORIENT __declspec(dllexport)
#endif
#include "TCInfoSuVars.h" //class is here!
SDBIDI_ORIENT int myFoo(FILE *file); // exporting function
#endif
TCInfoSuVars.h中的类定义
#pragma once
#include <string>
#include <hash_map>
class SDBIDI_ORIENT TCInfoSuVars
{
public:
std::string id;
std::string tcVal;
TCInfoSuVars();
TCInfoSuVars(std::string _tcVal, std::string _id);
~TCInfoSuVars();
};
收到错误:
myProgram.cpp
#define SDBIDI_FLAG
输出:
TCInfoSuVars.h(14) : error C2470: 'TCInfoSuVars' : looks like a function definition, but there is no parameter list; skipping apparent body
如果我写
class __declspec(dllexport) TCInfoSuVars
一切正常。
谢谢!
答案 0 :(得分:12)
在您定义 TCInfoSuVars.h
之前包含SDBIDI_ORIENT
的地方 - 确保首先包含定义SDBIDI_ORIENT
的头文件。