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

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

10.01.2014, 15:03. Показов 14498. Ответов 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
8488 / 6155 / 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
8488 / 6155 / 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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
27.12.2019, 06:55
Можно из dll сделать lib.
см., например
http://xbb.uz/dev/Gjenjeracija... ual-Studio
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 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,816
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru