Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подключение динамической библиотеки, как подключить динамическую библиотеку 
:(
    Опции темы
vol4ek
Дата 2.3.2017, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



неявное подключение

Добавлено через 3 минуты и 9 секунд
Код

//MergeShort.dll header file
#pragma once
extern "C" __declspec(dllexport)void MergeSort(int *mas, int first, int last);
extern "C" __declspec(dllexport)void Merge (int *mas, int first, int last);



Код

// DLL cpp file
#include <windows.h>
#include "MergeShort.h"

void MergeSort(int *mas, int first, int last)
{
  if (first < last) 
   {
        MergeSort(mas, first, (first + last) / 2);
        MergeSort(mas, (first + last) / 2 + 1, last);
        Merge(mas, first, last);
   }
}


void Merge (int *mas, int first, int last)
{
int middle, start, final, j, *suplem_mas;
    suplem_mas = new int[100];
    
        middle = (first + last) / 2;
        start = first;
        final = middle + 1; 
        for (j = first; j <= last; j++) 
        { 
            if ((start <= middle) && ((final > last) || (*(mas + start) < *(mas + final)))) 
            {
                *(suplem_mas + j) = *(mas + start);
                start++;
            } else 
            {
                *(suplem_mas + j) = *(mas + final);
                final++;
            }
        }
        for (j = first; j <= last; j++)
        {
            *(mas + j) = *(suplem_mas + j);
        }
    
    delete[]suplem_mas;

}


Добавлено через 4 минуты и 38 секунд
Код

// console app cpp file
#include <iostream>
#include <windows.h>
#include <time.h>
#include <conio.h>
#include "MergeShort.h"
#pragma comment (lib, "MergeShort.lib")
using namespace std;



int *BuildMas (int &n) {    
    int *mas, i;
    puts ("vvod\n");
    scanf ("%d", &n);
    printf ("n = %d\n", n);
    mas = new int [n];
    for (i = 0; i < n; i ++) {
        *(mas + i) = rand() % 21 - rand() % 21;
    }
    return mas;
}

void PrintMas (int *mas, int n) {    
    int i;
    for (i = 0; i < n; i ++) {
        printf ("%4d", *(mas + i));
    }
}

int main() {
    int n, *mas;
    setlocale (0,"russian");
    srand ((unsigned)time(NULL));
    
    mas = BuildMas (n);
    puts ("print mas");
    PrintMas (mas, n);
    printf ("\n");
    MergeSort(mas, 0, n - 1); 
    puts ("print mas");
    PrintMas (mas, n);
    printf ("\n");
    puts ("end");
    delete[] mas;
    getch();
    return 0;
}


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  usedll.rar 256,53 Kb
PM MAIL ICQ   Вверх
vol4ek
Дата 2.3.2017, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



функции не проверял, только беглый просмотр на синтаксические ошибки

Добавлено через 2 минуты и 43 секунды
у меня там опечатка есть в названии функции MergeSort
PM MAIL ICQ   Вверх
шарлотта
Дата 3.3.2017, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.3.2017

Репутация: нет
Всего: нет



Большое Вам спасибо!
Постараюсь разобраться.
PM MAIL   Вверх
шарлотта
Дата 6.3.2017, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.3.2017

Репутация: нет
Всего: нет



К сожалению, так и не смогла понять, в чем была ошибка. Скопировала файлы .h и .lib  в папку с приложением. Выдает fatal error LNK1104: не удается открыть файл ''I:\информатика.obj''.
А при явном подключении по-прежнему выдает: "Ошибка".
А что надо было поправить в моей исходной программе?

Это сообщение отредактировал(а) шарлотта - 6.3.2017, 00:37
PM MAIL   Вверх
vol4ek
Дата 6.3.2017, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



.h и .lib нужно копировать не в папку приложения, а в папку проекта. в папку приложения нужно копировать .dll
вызовите GetLastError() после LoadLibrary()
мои проекты у вас тоже не собираются?

Добавлено через 3 минуты и 21 секунду
меня смущают иероглифы в строках в ваших исходниках. писали сами или откудато взяли?

Добавлено через 5 минут и 32 секунды
попробуйте собрать вот этот с неявным подключением. проект в аттаче.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  usedll.rar 256,53 Kb
PM MAIL ICQ   Вверх
шарлотта
Дата 9.3.2017, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.3.2017

Репутация: нет
Всего: нет



Большое спасибо Вам за помощь! Удалось подключить динамическую библиотеку!
PM MAIL   Вверх
vol4ek
Дата 9.3.2017, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: нет
Всего: 0



как решили?
PM MAIL ICQ   Вверх
шарлотта
Дата 9.3.2017, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.3.2017

Репутация: нет
Всего: нет



При неявном подключении создала новый проект, и ошибки не выдало.
При явном добавила GetLastError().

Это сообщение отредактировал(а) шарлотта - 9.3.2017, 21:45
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1344 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.