类导出错误(错误C2470:看起来像函数定义)

时间:2011-03-16 17:07:04

标签: c++ class visual-studio-2005

我无法导出课程:

#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

一切正常。

谢谢!

1 个答案:

答案 0 :(得分:12)

在您定义 TCInfoSuVars.h之前包含SDBIDI_ORIENT 的地方 - 确保首先包含定义SDBIDI_ORIENT的头文件。