Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/76: Рейтинг темы: голосов - 76, средняя оценка - 4.89
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 123

Подключение dll к проекту в visual studio

10.01.2014, 15:03. Показов 14588. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня,

тема уже эта конечно избитая на форуме, но так и не смог найти решения под свою конкретную задачу, прочитав все, что имеется на форуме, и посмотрев примеры на msdn.

Есть у меня динамическая библиотека, с нестандартным расширением на конце .ascet_psl.

По уверению одностаничного мануала с которым идет библиотека, в котором вообще ничего полезного нет, это все же dll-ка.
К этой dll-ке у меня есть еще и заголовочный файл. И все... файла .lib у меня в комплекте нет...

Частичное содержание заголовочного файла:

C++
1
2
3
4
5
6
7
8
9
10
11
#pragma once
#pragma pack(push,4)
 
#ifdef ASCCET_MODEL_EXPORTS
#define ASCCET_MODEL_DLL __declspec(dllexport)
#else
#define ASCCET_MODEL_DLL
#endif
extern "C" {
ASCCET_MODEL_DLL int Initialise();
}
Вопрос как можно прикрутить такое творение в visual studio?
Цель моей задачи из этой библиотеки сделать другую, в которой будет использоваться реализованные алгоритмы этой dll-ки
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2014, 15:03
Ответы с готовыми решениями:

Подключение dll к проекту на Visual Studio
Привет. Я в этом деле новичок еще не приходилось собирать с нуля проекты с .dll в visual studio 2012 поэтому смутно понимаю с чего нужно...

Подключение MYSQL к проекту Visual Studio C++
Здравствуйте, как подключить базу данных MYSQL, phpMyAdmin к проекту (CLR/Windows Forms C++)?

Visual Studio 2010 подключение DLL(C++) к проекту на C#
Добрый день! По манулу создал DLL. Так же создал приложение на C#. Хочется использовать функции из ранее созданной библиотеки. Каким...

12
18 / 18 / 6
Регистрация: 10.01.2014
Сообщений: 45
10.01.2014, 21:44
Цитата Сообщение от ustus_alex Посмотреть сообщение
Вопрос как можно прикрутить такое творение в visual studio?
Цитата Сообщение от ustus_alex Посмотреть сообщение
. файла .lib у меня в комплекте нет...
Грузите dll динамически, через LoadLibrary и .lib не нужен

Добавлено через 2 минуты
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
#include <windows.h>
#include <iostream>
 
 
typedef int ( WINAPIV * LPFN_Initialise ) ( ); 
 
int main()
{
    HINSTANCE hMyDLL = LoadLibraryW(L"DLL_Name.ascet_psl");
 
  if (NULL == hMyDLL) 
   std::cout << "LoadLibrary Error"; 
  else
  {
    LPFN_Initialise fnName = (LPFN_Initialise)GetProcAddress(
                                           hMyDLL,
                          "Initialise" );
    if (NULL == fnName) 
       std::cout << "GetProcAddress Error"; 
    else
    {                                                         
      std::cout << fnName();  
    }
    FreeLibrary( hMyDLL );
  }
  std::cin.get();
  std::cin.get();
}
2
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 123
20.01.2014, 16:23  [ТС]
Цитата Сообщение от TeachMeC Посмотреть сообщение
Грузите dll динамически, через LoadLibrary и .lib не нужен

Добавлено через 2 минуты
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
#include <windows.h>
#include <iostream>
 
 
typedef int ( WINAPIV * LPFN_Initialise ) ( ); 
 
int main()
{
    HINSTANCE hMyDLL = LoadLibraryW(L"DLL_Name.ascet_psl");
 
  if (NULL == hMyDLL) 
   std::cout << "LoadLibrary Error"; 
  else
  {
    LPFN_Initialise fnName = (LPFN_Initialise)GetProcAddress(
                                           hMyDLL,
                          "Initialise" );
    if (NULL == fnName) 
       std::cout << "GetProcAddress Error"; 
    else
    {                                                         
      std::cout << fnName();  
    }
    FreeLibrary( hMyDLL );
  }
  std::cin.get();
  std::cin.get();
}
Выражаю огромнейшую благодарность. К сожалению, только сейчас руки снова дошли до этой библиотеки.

И, вот, что я обнаружил, если использовать в Visual Studio конфигурацию Win32, то библиотека грузится должным образом и я получаю доступ ко всем ее функциям.

Но как только я беру нужную мне конфигурацию x64, то dll-ка не грузится... Как бы можно было бы обойти эту проблему?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.01.2014, 16:44
Цитата Сообщение от ustus_alex Посмотреть сообщение
Но как только я беру нужную мне конфигурацию x64, то dll-ка не грузится... Как бы можно было бы обойти эту проблему?
Скачать 64-x битную версию DLL-ки для данной библиотеки.
0
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 123
20.01.2014, 17:27  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Скачать 64-x битную версию DLL-ки для данной библиотеки.
64 разрядной версии библиотеки, к сожалению,не существует...
Означает ли это, что путь к ее использованию закрыт и никакие финты типа :
C++
1
HINSTANCE hMyDLL = LoadLibraryEx(L"DLL_Name.ascet_psl", NULL, 0x00000002);
помочь уже не смогут?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.01.2014, 17:28
Нужно читать о совместимости версий.

Организация доступа к 32-bit DLL из 64-bit приложения.
1
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 123
20.01.2014, 17:40  [ТС]
Спасибо, понял куда копать
0
2 / 2 / 0
Регистрация: 28.06.2019
Сообщений: 129
Записей в блоге: 3
27.12.2019, 05:53
При использовании этого кода выдает:
fnName: идентификатор не найден

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <windows.h>
using namespace std;
 
typedef int (WINAPIV* LPFN_Initialise) ();
 
int main()
{
    HINSTANCE MModel = LoadLibraryW(L"c:/mm.dll");
    if (NULL == MModel)
        cout << "LoadLibrary Error";
    else
        LPFN_Initialise fnName = (LPFN_Initialise)GetProcAddress(MModel,"MathModelInit");
    if (NULL == fnName)
        std::cout << "GetProcAddress Error";
    else
    {
        std::cout << fnName();
    }
    FreeLibrary(MModel);
}
0
Модератор
Эксперт С++
 Аватар для zss
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,256
27.12.2019, 06:55
Можно из dll сделать lib.
см., например
http://xbb.uz/dev/Gjenjeracija... ual-Studio
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.12.2019, 15:31
zss, Если быть точный то нет. Потому как есть разные "lib".
0
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
30.06.2020, 00:19
C++
1
HINSTANCE hMyDLL = LoadLibraryW(L"D:\\My_DLL\\my.dll");
Почему то выдает ошибку.
0
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
30.06.2020, 09:47
А если поставить в VisualStudio x64 - то ошибки нет.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
30.06.2020, 09:53
Цитата Сообщение от Optimus11 Посмотреть сообщение
my.dll
Видимо потому что она 64-битная
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.06.2020, 09:53
Помогаю со студенческими работами здесь

Подключение OpenGL к проекту на С++ (Visual Studio)
Доброго времени суток! Никак не могу понять, как подключать библиотеку OpenGL к своему проекту. h-файлы подключаются без проблем, но у меня...

Как в visual studio 2017 подключить dll библиотеку к проекту?
Как в visual studio 2017 подключить dll библиотеку к проекту? Явным и неясным способом. В одном случае у меня есть только файл .dll, во...

Подключение папки с исходниками к проекту Visual Studio 2015
Здравствуйте, Имеется папка с вложенные каталоги с файлами .cpp и .h. Возник вопрос как подключить данную папочку к проекту Visual...

Подключение библиотеки dlib к проекту, visual studio 2015
кто-нибудь подключал библиотеку dlib к проекту в visual studio 2015? нужна помощь, я только прописываю пути как на скрине, но думаю что...

Подключение .dll в Visual Studio 2010
Не могу справиться со студией. Не могли бы Вы подробно, пошагово написать когда и как подключить библиотеку данных к программе. Пробовал,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru