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

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

10.01.2014, 15:03. Показов 14434. Ответов 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
8484 / 6151 / 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
8484 / 6151 / 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
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
27.12.2019, 06:55
Можно из dll сделать lib.
см., например
http://xbb.uz/dev/Gjenjeracija... ual-Studio
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 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
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru