Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/55: Рейтинг темы: голосов - 55, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61

Функции из DLL

02.11.2016, 23:08. Показов 11583. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, прошу помощи , пытаюсь подключить dll .
Пробовал и динамически и статически , не получается.
Перепробовал наверное уже все методы и рекомендации которые нашел в Интернете

Windows7x64 ;
MSVS2010C++ сам проект x86;
подключаемая dll - x32 ;

так вот вопрос возможно ли использование dll-ки в такой конфигурации

если у кого есть желание помоч выложу и проект и DLL и опишу что пробовал
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2016, 23:08
Ответы с готовыми решениями:

Вызов функции из dll. Dll не определена в коде и подключается программно
Я написал простую функцию которая возвращает негатив bitmap'а Function Negative(ByVal Bmp As Bitmap) Dim Bmp2 As New...

Inject dll, а также вызов функции из этой же dll
Всем привет, заинжектить dll в другой процесс получилось, но еще необходимо вызвать функцию в этой длл, каким образом это реализовать? ...

Вызов функции DLL VB.NET в DLL C++
Как вызывать функции dll VB.NET через dll С++, которая приинжекчена к процессу проводника?

31
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
04.11.2016, 10:57  [ТС]
Студворк — интернет-сервис помощи студентам
Max Dark, подскажите для запуска этого проекта требуется Windows 7 x32

Добавлено через 51 минуту
ОК спасибо , сейчас пробую только в MS VS2015 плаваю , если не трудно подскажите где указать
0
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
04.11.2016, 13:25  [ТС]
Max Dark, все ОК, большое спасибо , может кому пригодится
вот что у меня получилось :
1) в MSVS2010C++ создал пустой проект
2) в корень проекта положил hscli.lib и hscli.h (файлы именно из проекта Max_Dark )
3) в каталог Debug проекта DLL-ку hscli.dll и три дополнительные зависимости(hsheap.dll , hsinpt.dll, hslogf.dll)
4) создаю файл main.cpp со следующим кодом :

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
 #define HYCFG_WIN32
#include "hscli.h"
#include <iostream>
 
using namespace std;
 
int main() {
    setlocale(LC_ALL,"RUS");
    
    hcSqlParmT  init = {0};
    init.size = sizeof(hcSqlParmT);
    hcHDB *pdb ; // Адрес памяти, куда будет записан идентификатор созданного соединения. 
    hcHDB  hdb ; // Идентификатор освобождаемого соединения. 
    pdb = &hdb ;
 
    //const char server="tcpip:/localhost:13000",  user="HTADMIN", password="PASSWORD" ;
 
    cout << "Функция hcSqlInit =  " << hcSqlInit(nullptr) << "\n"  ;           // Инициализация клиентской части
    cout << "Функция hcSqlCheckInit = " << hcSqlCheckInit() << "\n" ;          // Проверка завершения инициализации
    cout << "Функция hcSqlAllocConnect  = " << hcSqlAllocConnect(pdb) << "\n" ;// Создать соединение
    cout << "Функция hcSqlAllocConnect  = " << hcSqlConnect(hdb, "tcpip:/localhost:13000","HTADMIN","PASSWORD") << "\n" ;//   Установить связь с СУБД
    cout << "Функция hcSqlFreeConnect = " << hcSqlFreeConnect(hdb) << "\n" ;//   Освободить соединение
    cout << "Функция hcSqlDone = " << hcSqlDone() << "\n" ; //   Завершение работы
     
    system("pause");
}
запускаю и вуаля выхлоп в студию
Миниатюры
Функции из DLL  
0
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
04.11.2016, 13:27  [ТС]
Результат подключения к серверу свидетельствует консоль сервера HyTech
Миниатюры
Функции из DLL  
0
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
04.11.2016, 13:33  [ТС]
я на этом не успокаиваюсь, завтра добъю чтобы выполнялись SQL-запросы , и продолжу долбить динамическое подключение
и еще Max Dark, Вы бы не могли в двух словах прокоментировать создание LIB в MSVS2015
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
04.11.2016, 13:36
Цитата Сообщение от vova-f Посмотреть сообщение
hcHDB *pdb ;
hcSqlParmT *arg ;
вот здесь объявляются указатели, а память под переменные не выделена
Цитата Сообщение от vova-f Посмотреть сообщение
//htConnect(*pdb);// Вызываем функцию из библиотеки
вот здесь функции передается черт знает что

нужно или так
C++
1
2
3
hcHDB   pdb ;
hcSqlParmT  arg ;
htConnect(&pdb);
или так
C++
1
2
3
hcHDB  *pdb=new hcHDB;
hcSqlParmT  *arg=new hcSqlParmT;
htConnect(pdb);
1
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,890
Записей в блоге: 4
04.11.2016, 15:23
Лучший ответ Сообщение было отмечено vova-f как решение

Решение

Цитата Сообщение от vova-f Посмотреть сообщение
в двух словах прокоментировать создание LIB
данную либу можно собрать в любой версии студии(просто у меня 2015 установлена)
ее генерация заложена в hscli.h и включается если определен макрос HSCLI_DUMMY_DLL
я лишь подправил сигнатуру(заменил _export на __declspec(dllexport))

для сборки hscli.lib нужно:
  • создать пустой проект dll с названием "hscli"
  • добавить в проект файлы hscli.h и hscli.cpp(смотрите во вложении)
  • ну и собственно собрать проект в режиме "Release"
1
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
04.11.2016, 21:53  [ТС]
ValeryS, спасибо , подскажите а в последнем коде вот это правельно
C++
1
2
3
hcHDB *pdb ; // Адрес памяти, куда будет записан идентификатор созданного соединения. 
    hcHDB  hdb ; // Идентификатор освобождаемого соединения. 
    pdb = &hdb ;
Добавлено через 3 минуты
Max Dark, большое спасибо за оказанное внимание, за помощь
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
04.11.2016, 22:01
Цитата Сообщение от vova-f Посмотреть сообщение
hcHDB *pdb ; // Адрес памяти, куда будет записан идентификатор созданного соединения.
нет
здесь объявляется указатель, но он указывает в космос, поскольку память под объект никто не выделял
вот так будет правильно
C++
1
hcHDB *pdb=new hcHDB ; // Адрес памяти, куда будет записан идентификатор созданного соединения
посмотри на объявление функции scanf и примеры её использования, тогда поймешь как нужно работать с функциями которые в аргументах содержат указатели

Добавлено через 1 минуту
Цитата Сообщение от vova-f Посмотреть сообщение
подскажите а в последнем коде вот это правельно
поторопился я
в приведенном куске все правильно, только зачем так сложно
1
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
04.11.2016, 23:33  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
поторопился я
в приведенном куске все правильно, только зачем так сложно
я даже не знаю , оно само как то написалось вспомнил чето с 1курса
а если серьёзно, а как еще можно ? если не трудно подскажите , имено относительно последнего приведенного листинга
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
05.11.2016, 01:12
я в 25 посте показал
первый листинг самый простой вариант, для new нужно delete вызывать
1
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 61
05.11.2016, 01:27  [ТС]
ОК , понял
0
11 / 11 / 0
Регистрация: 18.11.2016
Сообщений: 7
27.02.2017, 05:51
Не могу прочитать результат SQLзапроса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2017, 05:51

Вызов программой, написанной на С++, функции из dll, написанной на Assembler (явное подключение dll)
Доброго времени суток!Задали лабораторную работу: программа, написанная на с++ должна подключать dll, написанную на Assembler и вызывать...

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием openCV 3.1 на Visual Studio 2013. При компиляции выдает ошибку...

В чем причина ошибки при получении адреса функции из dll с помощью функции GetProcAddress?
Здравствуйте.Не могу получить адрес функции из dll с помощью функции GetProcAddress. dll: #include&lt;windows.h&gt; HHOOK _hook; ...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете искал 64-битные версии ogg.dll, vorbis.dll...

Затупил, скажите где взять libmysqld.dll, libmysqld50.dll, libmysqld51.dll
Вечер добрый, ставлю ZEOS на Delphi 7, и для нормальной работы нужны файлы libmysqld.dll, libmysqld50.dll, libmysqld51.dll. Но я нигде...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru