Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235

Использование dll, Declaration terminated incorrectly

19.12.2012, 15:02. Показов 5406. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делал все по инструкции Dynamic-Link Library: Теория + Практика
но вылазит ошибка вот что
[BCC32 Error] Unit4.cpp(10): E2040 Declaration terminated incorrectly
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.12.2012, 15:02
Ответы с готовыми решениями:

Declaration terminated incorrectly
Здравствуйте, вот часть кода, проблемма в нем при компиляции выдаёт такую ошибку: E2040 Declaration terminated incorrectly в чем дело ?...

Declaration terminated incorrectly - C++
Привет всем.Вот код: //-------------все работает нормально for (int i=0;i<8;i++) {for (int j=0;j<20;j++) ...

Declaration terminated incorrectly
Помогите у меня две ошибки в коде, не могу понять в чем дело: перед 1-ым и 2-ым if-ом...

47
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
20.12.2012, 18:58  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
Вот переделал проект, но может не перекомпилиться на младших версиях так как у меня XE3.

В TESTDLL.cpp пришлось определить TESTDLL_EXPORTS что бы библиотека собралась по примеру MikeSoft

C++
1
2
#define TESTDLL_EXPORTS  // !!! !!! !!!
#include "TESTDLL.h"
Спасибо
пришлось определить TESTDLL_EXPORTS что бы библиотека собралась по примеру MikeSoft
а если не по примеру? легче будет?
Мне нужно 3 DLL сделать, в 1 dll функции подсчета в другой api-шные функции в третей остальное
Возможно как то попроще подключать библиотеки?)
помню в php написал include_once("file.php") и все
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.12.2012, 19:03
Цитата Сообщение от ExpressS Посмотреть сообщение
Возможно как то попроще подключать библиотеки?)
помню в php написал include_once("file.php") и все
Подключил хедер, подключил либ что сложного ?
Цитата Сообщение от ExpressS Посмотреть сообщение
а если не по примеру? легче будет?
Используйте пример из книги Архангельского. ( как я сказал уже нужно изменить только макрос TESTDLL_EXPORTS на __DLL__ тогда ничего не надо менять в TESTDLL.cpp)
1
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
20.12.2012, 19:28  [ТС]
Используйте пример из книги Архангельского.
Вот эта книжка?
Миниатюры
Использование dll, Declaration terminated incorrectly  
0
 Аватар для Крюгер
40 / 60 / 8
Регистрация: 16.11.2012
Сообщений: 460
Записей в блоге: 7
20.12.2012, 20:12
ExpressS, у вас какой компилятор, уважаемый?
я в борланде возился с этим, пришлось переделать, как - нашел где то на просторах гугла
этот пример по моему для визуал мелкософта
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.12.2012, 20:26
1
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
20.12.2012, 21:52  [ТС]
Ув Avazart уделите мне пожалуйста еще 2 мин вашего времени
сделал все по книге
Вложения
Тип файла: rar Архив WinRAR.rar (8.83 Мб, 10 просмотров)
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.12.2012, 21:54
И что ??
0
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
20.12.2012, 22:05  [ТС]
в архиве проект, посмотрите

Добавлено через 19 секунд
вложения
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.12.2012, 22:14
Думайте мозгами, я за Вас прДон, быдлокод править не буду... пример кода у вас есть...

P.S. Научитесь файлам давать адекватные имена, и уясните разницу между Click() и click() ...
а то до dll- вам далеко, учили бы php
1
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
20.12.2012, 23:10  [ТС]
Имена как в книге
исправил имя функции не работает
пример кода у вас есть...
есть но хочется как в книге и чтобы работало

Не нужно нечего править, ткните меня на ошибку

Добавлено через 10 минут
название исправил теперь E2268 Call to undefined function 'сlick'

Добавлено через 29 минут
Ура заработало как в книге !!!
завтра конец света
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.12.2012, 23:12
Цитата Сообщение от ExpressS Посмотреть сообщение
завтра конец света
Когда все дела сделаны, можно упокоиться с Миром
1
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
22.12.2012, 18:14  [ТС]
опять у меня ни чего не работает весь вечер мучаюсь помогите пожалуйста
сама dll
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <windows.h>
#include "head.h"
#pragma hdrstop
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    return 1;
}
//---------------------------------------------------------------------------
void en(void)
{
   ShowMessage("I am function");
 
}
файл head.h
C++
1
2
3
4
5
6
7
8
9
#ifndef _head_h
#define _head_h
#ifdef __DLL__
# define DLL_EI __declspec (dllexport)
#else
# define DLL_EI __declspec(dllimport)
#endif
extern __declspec(dllimport) void en(void);
#endif
файл unit4.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include "head.h"
#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm4::Button1Click(TObject *Sender)
{
 en();
}
вот такую ошибку показывает
[ILINK32 Error] Error: Unresolved external 'en()' referenced from C:\SS\DEBUG\UNIT4.OBJ
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.12.2012, 18:17
Цитата Сообщение от ExpressS Посмотреть сообщение
C++
1
2
3
4
5
6
7
#ifdef __DLL__
# define DLL_EI __declspec (dllexport)
#else
# define DLL_EI __declspec(dllimport)
#endif
extern __declspec(dllimport) void en(void);
#endif
Ну собственно в мой пример вы не смотрели ...

Смысл вам помогать ?
0
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
22.12.2012, 18:36  [ТС]
дак я по книжке делаю, и где ошибка понять не могу

Добавлено через 2 минуты
Помогите пожалуйста я 1,5 часа сидел все проверил по 10 раз
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.12.2012, 18:39
Цитата Сообщение от ExpressS Посмотреть сообщение
дак я по книжке делаю, и где ошибка понять не могу
Смотрю в книгу вижу фигу ...

Добавлено через 1 минуту
Цитата Сообщение от ExpressS Посмотреть сообщение
Помогите пожалуйста я 1,5 часа сидел все проверил по 10 раз
Хреного проверяете...
0
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
22.12.2012, 21:02  [ТС]
ну где ошибка то ?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.12.2012, 21:03
в невнимательности...
0
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
22.12.2012, 22:50  [ТС]
ну я все что можно пробовал
скажите уже а

Добавлено через 48 секунд
C++
1
2
3
4
5
6
7
8
9
#ifndef _head_h
#define _head_h
#ifdef __DLL__
# define DLL_EI __declspec (dllexport)
#else
# define DLL_EI __declspec(dllimport)
#endif
extern DLL_EI void en(void);// эта строчка неправильная ?
#endif
Добавлено через 1 час 44 минуты
C++
1
2
3
4
extern "C" char * DLL_EI Code_Dec(char *s, char Key);// как в эту строку подставить мою функцию ?
 
 
int sum (int a,int b)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
23.12.2012, 03:01
ExpressS, вот содержимое трех файлов (кроме *.bpr), создающих файл mydll.dll, который экспортирует функцию Sum, суммирующую два параметра int. В дальнейшем к проекту достаточно подключить библиотеку mydll.lib, которая создается при компиляции, приписать строчку #include "mydll.h" и можно будет применять функцию Sum(int, int). Указывать, что не так в твоих наработках, я не буду; сумеешь самостоятельно проанализировать пример (это уже второй) - гут; нет - Архангельский под рукой. Успехов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//---------------------------------------------------------------------------
///** file mydll.bpf ***
//
USEUNIT("Unit2.cpp");
//---------------------------------------------------------------------------
This file is used by the project manager only and should be treated like the project file
 
 
DllEntryPoint
//---------------------------------------------------------------------------
///*** file Unit2.cpp  ***
//---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{   return 1;  }
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) int _stdcall Sum(int x,int y)
  {  return x+y ;  }
//---------------------------------------------------------------------------
///** file mydll.h ***
//
#ifndef __MYDLL_H__
#define __MYDLL_H__
 
extern "C" { int _stdcall Sum(int x,int y);  }
 
#endif
//---------------------------------------------------------------------------
0
 Аватар для ExpressS
5 / 8 / 2
Регистрация: 30.07.2012
Сообщений: 235
23.12.2012, 09:30  [ТС]
вы или сами не знаете или издеваетесь
мне нужно указать где у меня ошибка в 32 посте и все
больше ни чего не надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2012, 09:30
Помогаю со студенческими работами здесь

Исправить ошибку в коде: E2040 Declaration terminated incorrectly
Ошибка указывает на первую строку, не могу понять Unit2.cpp(160): E2040 Declaration terminated incorrectly if(Edit1-&gt;Text...

[C++ Error] kurscpp.cpp(4): E2040 Declaration terminated incorrectly
#include &lt;windows.h&gt; #include &lt;stdio.h&gt; #pragma hdrstop extern &quot;C&quot; _stdcall DATE(char *, char *, char *); void main() { ...

"E2090: Qualifier 'Date0' is not a class or namespace name" и "E2040: Declaration terminated incorrectly"
Подскажите пожалуйста,в чем ошибка? //--------------------------------------------------------------------------- #include...

Ошибка при компиляции: "E2275 { expected" и "E2040 Declaration terminated incorrectly"
Здравствуйте! При компиляции выдает такую ошибку: C++ Error] Unit1.cpp(12): E2275 { expected Unit1.cpp(147): E2040 Declaration...

Declaration terminated incorrectly
#include&lt;stdio.h&gt; { int a,b,c; a=5; b=7; c=a*b; printf(&quot;multiplication=%d\n&quot;,c); } Помогите пожалуйста найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru