Ошибка сборки DLL, связанная с типом строки - PullRequest
0 голосов
/ 28 октября 2011

3Я учусь использовать C ++ для написания библиотек DLL и следую этому обучающему видео , чтобы начать работу. Я точно следую, мой код:

defFile.def:

LIBRARY "square"
EXPORTS 
square

funct.cpp:

double __stdcall square(double & x) 
{
    return x*x;
}

При попытке построить с использованием VSE 2010 я получаю следующую ошибку:

1>------ Build started: Project: square, Configuration: Debug Win32 ------
1>  defFile.def
1>c:\documents and settings\~\my documents\visual studio 2010\projects\square\square\deffile.def(2): error C2143: syntax error : missing ';' before 'string'
1>c:\documents and settings\~\my documents\visual studio 2010\projects\square\square\deffile.def(2): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Я пытался добавить #include <string> вверху defFile.def, но все равно получаю ту же ошибку. Я уверен, что это действительно просто.

Ответы [ 2 ]

0 голосов
/ 28 октября 2011

Вы добавили файл .def в ваш проект.Он компилируется, как будто это файл исходного кода.Это не может работать.

Щелкните правой кнопкой мыши свой проект, Свойства, Линкер, Ввод.Установите для параметра «Файл определения модуля» значение «defFile.def».

0 голосов
/ 28 октября 2011

Файл определения не является C ++.Удалите using namespace std; оттуда.Кроме того, вы не должны его компилировать, если вы хотите его использовать, вам нужно изменить настройки компоновщика для проекта.

...