Я создал два отдельных проекта в MS Visual Studio, W59Components.cpp (console) и Frequency.cpp (DLL). Я создал класс ReadFile в W59Components> ReadFile.h и пытаюсь использовать этот класс в другом проекте MS Frequency.cpp. Я не смотрел на другие форумы по этой теме.C++ MS Visual Studio Exp 2013 IntelliSense: это объявление не имеет класса хранения или спецификатора типа
По какой-то причине я получаю ошибку IntelliSense: «IntelliSense: это объявление не имеет класса хранения или спецификатора типа».
компилятора Ошибки:
ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 't'
ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int
ошибка C2365: 'ReadFile': redefinition; предыдущее определение было «функция»
см декларирование «ReadFile»
Вот фрагмент кода:
#include "stdafx.h"
#include <windows.h>
#include <string>
#include "../../scripts/DLLs/Wave59_SDK.h"
using namespace std;
#include "ReadFile.h"
ReadFile t; // Should Reconize "ReadFile" as a class
//#include "../../scripts/DLLs/demo/Demo.h"
// ---------------------------------------------------------------------------
extern "C" double __declspec(dllexport) average(WAVE59_DATASTRUCT *price_ptr,
int currentptr, int *int_args, int num_int_args, double *double_args,
int num_double_args, char **string_args, int num_string_args);
Как вы #include заголовочный файл из другого MS Visual Студийный проект?
Вот файл заголовка, я не хочу обременять вас с определением функции:
/* ReadFile.h
* Reads a incomming file and splits it into a multidemensional array */
# include <istream>
# include <fstream>
#include<string>
using namespace std;
class ReadFile {
public:
ReadFile(){};
~ReadFile(){};
void ReadTheFile(string path = "C:\\Users\\Owner\\Documents\\Wave59\\TestWriteFile.txt");
void split(string delimiter, string text, string pArray[]);
int getColumnNum(){ return this->columnNum; }
int WriteFile(string message[], int lenMessage, string path = "C:\\Users\\Owner\\Documents\\Wave59\\W59Components-WrittenFile.txt");
double f2Array[20][1000];
private:
void readFile(double pArray[], string path = "C:\\Users\\Owner\\Documents\\Wave59\\TestWriteFile.txt");
void sortArray(double returnArray[], int modNum);
// Initalize VARS
const int SIZE = 10000;
double fArray[10000]; // file data
int columnNum; // Number of colums in the file data, which is different arrays of data
};
*** Как вы # включаете заголовочный файл из другого проекта MS Visual Studio? *** Обычно я добавляю путь к дополнительным каталогам Include. Однако, как вы включили его, все должно быть хорошо. И это было прекрасно, так как у вас была бы другая ошибка, если Visual Studio не смог найти заголовок. Возможно, у вас есть проблема с вашими защитниками #ifdef в ReadFile.h. – drescherjm
Вам нужно показать содержимое 'ReadFile.h'. –
Точная ошибка компилятора также поможет. Ошибки Intellisense не всегда являются ошибками компилятора. – drescherjm