Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 4

Не удается подключить DLL

27.05.2011, 20:40. Показов 2072. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Написал DLL библиотеку.
Вот код:
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
33
34
35
36
37
38
39
40
41
42
43
44
MathFuncsDll.h: 
        // Returns a + b
         __declspec(dllexport) double Add(double a, double b);
 
        // Returns a - b
         __declspec(dllexport) double Subtract(double a, double b);
 
        // Returns a * b
        __declspec(dllexport) double Multiply(double a, double b);
 
        // Returns a / b
        // Throws DivideByZeroException if b is 0
        __declspec(dllexport) double Divide(double a, double b);
MathFuncsDll.cpp: 
#include "MathFuncsDll.h"
 
#include <stdexcept>
 
using namespace std;
 
    double Add(double a, double b)
    {
        return a + b;
    }
 
    double Subtract(double a, double b)
    {
        return a - b;
    }
 
    double Multiply(double a, double b)
    {
        return a * b;
    }
 
    double Divide(double a, double b)
    {
        if (b == 0)
        {
            throw new invalid_argument("b cannot be zero!");
        }
 
        return a / b;
    }
Вот приложение которое якобы должно использовать DLL библиотеку:
Код:
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
33
34
35
36
37
MyExecRefsDll.cpp:
#include <iostream>
 
 
using namespace std;
 
using namespace System::Runtime::InteropServices;
 
[DllImport("MathFuncsDll.dll")]
extern double Add(double a, double b);
[DllImport("MathFuncsDll.dll")]
extern double Subtract(double a, double b);
[DllImport("MathFuncsDll.dll")]
extern double Multiply(double a, double b);
[DllImport("MathFuncsDll.dll")]
extern double Divide(double a, double b);
 
int main()
{
    double a = 7.4;
    int b = 99;
    cout << "Vvedite a" << endl;
    cin >> a;
    cout << "Vvedite b" << endl;
    cin >> b;
 
    cout << "a + b = " <<
        Add(a, b) << endl;
    /*cout << "a - b = " <<
        Subtract(a, b) << endl;
    cout << "a * b = " <<
        Multiply(a, b) << endl;
    cout << "a / b = " <<
        Divide(a, b) << endl;*/
 
    return 0;
}
Посмотрите что не так, заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2011, 20:40
Ответы с готовыми решениями:

Не удаётся подключить dll
Здравствуйте. Я хочу управлять своим IIS с помощью класса ServerManager...

Как при создании своей dll подключить туда сторонние dll
Здравствуйте, я работаю в связке C# - Oracle. Если коротко, то вопрос звучит так: &quot;Как при создании своей dll подключить туда сторонние...

Как подключить dll (SmartCOM3.dll) к php через расширение php_com_dotnet?
Доброе время суток. Передо мной встала задача через php подцепить SmartCOM3.dll. В мануале написано что подцепка dll делается через...

6
2 / 2 / 3
Регистрация: 24.05.2011
Сообщений: 31
28.05.2011, 00:48
stimbill, в свойствах проекта установите дополнительние зависимости, а именно вашу *.dll
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 4
28.05.2011, 01:12  [ТС]
При запуске программы, ввожу значения переменых, для выполнения операций над ними программа вызывает функции из .dll, как только начинаются операции выскакивает ошибка...

'MyExecRefsDll.exe': Loaded 'C:\Users\BILL\Documents\Visual Studio 2008\Projects\MyExecRefsDll\Debug\MathFu ncsDll.dll', No symbols loaded.
Миниатюры
Не удается подключить DLL  
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 4
28.05.2011, 18:03  [ТС]
Разобрался. В заголовочном файле библиотеки перед экспортированием не указывал extern "C", вот и компилятор не находил точку входа )))
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
29.05.2011, 01:05
я дико извинюсь но где главная функция ????
которая чтото делает при подключении отключении DLL
DllMain?????

Добавлено через 10 минут
Цитата Сообщение от stimbill Посмотреть сообщение
Разобрался. В заголовочном файле библиотеки перед экспортированием не указывал extern "C", вот и компилятор не находил точку входа )))
нет не разобрался
extern "C" означает сделать как С
т.е в отличии от С++ описать функцию в библиотеке импорта без служебных символов

Добавлено через 5 минут
Цитата Сообщение от stimbill Посмотреть сообщение
компилятор не находил точку входа )))
точку входа куда????
DllMain у тебя не описана
компилятор сам создаст ее
дизасемблируй свой код и узнаешь много нового
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
29.05.2011, 08:00
Компилятор не находил имена функций (из-за искажения имен), а не точку входа. А определять DllMain в этом примере не нужно, т.к. не нужно ничего инициализировать вручную.
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 4
29.05.2011, 12:52  [ТС]
Я в программирование не силен ))) эт задачку мне дали по курсовой, вот сидел разбирался. И щас все работает ))) функции отлично импортируются. Указав extern "C" , перед функцией, я не туда библиотеку еще кидал в приложение )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2011, 12:52
Помогаю со студенческими работами здесь

Как подключить свою dll к другой DLL (не своей) с проверкой?
Привет всем. Не знаю куда написать, напишу сюда. Вопрос такой: хочу подключить свою dll к другому dll файлу да так, чтобы была какая-то...

Не получается подключить библиотеку Unmanaged.dll (Firefox nss3.dll)
Здравствуйте, начал изучать c#, очень понравилась тема декриптования, для начала решил из исходников собрать приложение для декриптования и...

Как подключить ssleay32.dll & libeay32.dll
Всем привет. У меня QT5 Собран статически, но без openssl. Как мне сейчас можно поступить, что бы подключить данные длл для передачи...

Как подключить dll, написанную на C, к dll на Delphi
Добрый день! Нужно подключить dll написанную на C к dll на Delphi. Как это можно сделать и можно ли вообще?

Создал dll, но не могу подключить, т.к расширение не dll
Здравствуйте) Изучаю по Троелсону Си-шарп, и там создается библиотека длл и подключается. Проблема в том, что я делаю по учебнику,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru