ошибка экспорта класса (ошибка C2470: выглядит как определение функции) - PullRequest
8 голосов
/ 16 марта 2011

Я не могу экспортировать класс:

#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 Ответ

12 голосов
/ 16 марта 2011

Где вы включаете TCInfoSuVars.h до определения SDBIDI_ORIENT - убедитесь, что вы включили заголовочный файл, который определяет SDBIDI_ORIENT первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...