Форум программистов, компьютерный форум CyberForum.ru

dllimport - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти наибольший общий делитель n и m [Qt 5] http://www.cyberforum.ru/cpp-beginners/thread989401.html
Здравствуйте. Не могли бы помочь? Если можно, не очень сложный код, чтобы понятно было. Код надо написать в программе Qt5 Заранее спасибо)
C++ Решение задачки Привет всем. Помогите или намекните, как решить данную задачку. В предыдущем задании записал файл из 40 значений, вот вторая часть: " Вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами. Вывести значения этих элементов и их сумму. " http://www.cyberforum.ru/cpp-beginners/thread989390.html
C++ Есть сайт. как сделать из него чтение?
Есть файл txt с открытым доступом в сети. как сделать из него чтение? ну например первой строки или первого слова.
стеки и робота с ними C++
Даны текстовый файл, содержащий числовую информацию. Выберите из него числа и занесите в очередь. Выведите содержимое очереди на экран и посчитайте количество положительных чисел.
C++ Как переделать код что б там были указатели ! http://www.cyberforum.ru/cpp-beginners/thread989376.html
#include <iostream> #include <conio.h> #include <iomanip> #include <math.h> using namespace std; void Display (int A,int m,int n); void Sum(int A,int m,int n);
C++ Запись вектора в файл и его чтение Здравствуйте. Возникла такая проблема: У меня есть свой класс class CType { public: CType () {is_empty=true; is_show=false; visible=true;} AnsiString type_var; AnsiString name_type; AnsiString name_var; bool is_empty; подробнее

Показать сообщение отдельно
noname_club
 Аватар для noname_club
100 / 88 / 9
Регистрация: 01.05.2013
Сообщений: 563
27.10.2013, 14:21     dllimport
хотелось бы уточнить кое-какую информацию относительно использования dll в с++

вики учебник предлагает 2 варианта импорта dll функций

1) с использованием .lib .obj и прочих "файлов"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
 /*
  * Указываем, что тело функции находится в другом файле.
  * Не забыть про объектный модуль DLL при линковке!
  */
 extern "C" __declspec(dllimport)double AddNumbers(double a, double b);
 
 /* Используем функцию как обычно */
 int main(int argc, char **argv)
 {
     double result = AddNumbers(1, 2);
     printf("The result was: %f\n", result);
     return 0;
 }
естественно только при наличии .lib .obj данный код будет работать

2) динамическая линковка
данный метод не требует ничего кроме самой dll
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <windows.h>
 #include <stdio.h>
 
 /*
  * Тип используемой функции
  * (комбинация типов параметры и возвращаемого значения)
  */
 typedef double (*importFunction)(double, double);
 
 int main(int argc, char **argv)
 {
     importFunction addNumbers;
     double result;
 
     /* Загружаем DLL в память */
     HINSTANCE hinstLib = LoadLibrary("Example.dll");
     if (hinstLib == NULL) {
         printf("ERROR: unable to load DLL\n");
         return 1;
     }
 
     /* Получаем указатель на функцию */
     addNumbers = (importFunction)GetProcAddress(hinstLib, "AddNumbers");
     if (addNumbers == NULL) {
         printf("ERROR: unable to find DLL function\n");
         return 1;
     }
 
     /* Вызываем функцию через указатель */
     result = addNumbers(1, 2);
 
     /*
      * Выгружаем DLL (в принципе, это будет сделано
      * автоматически при выходе из программы)
      */
     FreeLibrary(hinstLib);
 
     /* Отображаем результат */
     printf("The result was: %f\n", result);
 
     return 0;
 }

и получается что имея на руках одну лишь DLL, будет работать только 2 способ с динамической линковкой

неужели нет других вариантов подключения DLL если отсуствуют .lib .obj файлы?

Добавлено через 3 минуты
разумеется я допускаю написание класса для dll, который при создании будет динамически линковать/импортировать функции, и будет исполнять роль вместо заголовка для нее.

Но это както немного странно выглядит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru