Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119

dLL

21.02.2011, 23:32. Показов 4757. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мужики, помогите, нигде не могу найти.
есть у меня dLL

вот его cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Главный DLL-файл.
 
#include "stdafx.h"
 
#include "lib.h"
 
extern "C" __declspec(dllexport) void func1() {
    cout << " LOL ";
 
}
 
 
extern "C" __declspec(dllexport) void func2() {
}
хочу вызвать функцию1, но я даж не могу загрузить ее адресс
C++
1
2
3
4
HANDLE hDll;
        FARPROC pDll;
        hDll = LoadLibrary (L"lib.dll");
        pDll = GetProcAddress (hDll, MAKEINTRESOURCE(1));
выдет ошибку
1>menu.cpp(17): error C2664: GetProcAddress: невозможно преобразовать параметр 1 из "HANDLE" в "HMODULE"
1> Для преобразования "void*" к указателю на тип, не являющемуся "void", требуется явное приведение
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2011, 23:32
Ответы с готовыми решениями:

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

Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL
День добрый! При запуске моей программы (много моего кода + много разных сторонних dll) на WinXP SP2, получаем соответствующую ошибку...

Как узнать путь к загруженной DLL из самой DLL?
Создаю небольшую программку в папке c:/test/app/, есть DLL в папке c:/test/dll/. В коде самой dll, после её подгрузки в программу, можно...

20
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
22.02.2011, 19:54  [ТС]
Студворк — интернет-сервис помощи студентам
оставьте в личке свой icq или skype, пожалуйста.

или жаббер

Добавлено через 11 часов 20 минут
пишу дальше прогу... мне над задействовать функцию ScrollConsoleScreenBuffer
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
 
typedef void (*pFun)();
 
 
int main() 
{
    int cycle = 1, clav = 0, k = 0;
    pFun pDll = NULL;
    while (clav != 13)
    {
        HMODULE hDll = LoadLibrary (L"lib.dll");
                if (!hDll)
                {
                    cout << "Error loading library\n";
                    return 0;
                }
 
                pDll = (pFun) GetProcAddress (hDll, "func1");
                if (!pDll)
                {
                    cout << "Error GetProcAddress()\n";
                    return 0;
                }
        menu:
        system("cls");
        k = (k+4)%4;
        if (k == 0) cout << "Game \t<<" << endl; else cout << "Game" << endl;
        if (k == 1) cout << "Save \t<<" << endl; else cout << "Save" << endl;
        if (k == 2) cout << "Author info <<" << endl; else cout << "Author info" << endl;
        if (k == 3) cout << "Exit \t<<" << endl; else cout << "Exit" << endl;
        clav = _getch();
        if (clav == 224)
        {
            clav = _getch();
            if (clav == 80) k++;
            if (clav == 72) k--;
        }
    }
    system("cls");
        switch (k)
    {
    case 0:
        pDll();
        cout << "\n";
        break;
    case 1:
        cout<<"fdsjkabfjhsdbfhj";
        HANDLE CMD;
        SMALL_RECT Rect1, Rect2; 
        CHAR_INFO chiFill; 
        CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
        COORD coord; 
        CMD = GetStdHandle(STD_OUTPUT_HANDLE);
        GetConsoleScreenBufferInfo(CMD, &csbiInfo); 
        Rect1.Top = csbiInfo.dwSize.Y - 16; 
 
        Rect1.Left = 0;
        Rect1.Right = csbiInfo.dwSize.X - 1;
        Rect1.Bottom = csbiInfo.dwSize.Y - 1; 
 
        coord.X = 0;
        coord.Y = csbiInfo.dwSize.Y - 17; 
 
 
        Rect1 = Rect2;
        
        chiFill.Attributes = BACKGROUND_GREEN | FOREGROUND_RED; 
        chiFill.Char.AsciiChar = ' ';
        
        ScrollConsoleScreenBuffer(CMD,&Rect1,&Rect2,coord,&chiFill);
 
 
        break;
    case 2:  MessageBox( NULL, TEXT("Aleksej\nCSF-201\nLab 5"), TEXT("Author info"), MB_OK ); goto menu; break;
    case 3: return 0;
    }
    system("pause");
}
все норм компилится, запускается, но ничего не происходит. Скажите в чем ошибка =\

Добавлено через 1 час 41 минуту
никто?(

Добавлено через 3 часа 53 минуты
Разобрался!)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cout<<"fdsjkabfjhsdbfhj" << endl;
        HANDLE CMD;
        SMALL_RECT Rect1; 
        CHAR_INFO chiFill; 
        CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
        COORD coord; 
        CMD = GetStdHandle(STD_OUTPUT_HANDLE);
        GetConsoleScreenBufferInfo(CMD, &csbiInfo); 
        Rect1.Top = 5; 
        Rect1.Left = 0;
        Rect1.Right = 80;
        Rect1.Bottom = 10; 
        coord.X = 0;
        coord.Y = 10; 
        chiFill.Attributes = BACKGROUND_GREEN | FOREGROUND_RED; 
        chiFill.Char.UnicodeChar = '*';     
        ScrollConsoleScreenBuffer(CMD,&Rect1,NULL,coord,&chiFill);
        cout<<"fdsjkabfjhsdbfhj" << endl;
вот так работает... Только я что-то не пойму сути это функции. В лабе задание: вывести любой текст в буфер экрана консоли и прокрутить его на несколько строк. Использовать функцию ScrollConsoleScreenBuffer(). Ну я вывожу текст, прокручиваю, а он нифига не прокручивается. Вывожу текст еще после этого и снова нифига. Он только перекрывает то, что было сделано функцией ScrollConsoleScreenBuffer()

Добавлено через 31 минуту
хм... решил использовать SetConsoleCursorPosition(CMD,coord);
не знаю правда правильно ли, но это выход.

Добавлено через 1 час 32 минуты
C++
1
2
3
4
5
        DWORD att;
        att = GetFileAttributes(L"D:\\test.txt");
        if (att==INVALID_FILE_ATTRIBUTES) cout << "INVALID";
        if (att==FILE_ATTRIBUTE_READONLY) cout << "Read only" << endl;
        if (att==FILE_ATTRIBUTE_NORMAL) cout << "Normal only" << endl;
и инвалид не выдает, и сообщения не выдает. Шо я снова делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2011, 19:54

Dll файл в exe файле. Вшить dll libcurl
Проблема такая что приходится таскать всегда libcurl.dll с собой. Надо все носить в одном exe. Enigma Virtual Box использовать нельзя,...

Отсутствует libstdc++-6.dll и libgcc_s_sjlj-1.dll при компиляции
Открыл на ноутбуке VS 2019, ни одна программа не компилируется, выдает ошибку с отсутствием файлов libstdc++-6.dll и libgcc_s_sjlj-1.dll....

Запись из внедренной dll в другую dll этого процесса
main.cpp #include &lt;Windows.h&gt; extern int writeprocess(); DWORD WINAPI MainThread(LPVOID lpParam) { ...

Как узнать зависимость DLL-ки от других DLL-ек?
Есть DLL-ка, она в свою очередь подгружает другие DLL-ки, а так же использует соответственно тулфейн свого компилятора и тд. Есть какая...

Обращение к ресурсам DLL из самой DLL
Коллеги, добрый день. Получил следующее задание - Создать библиотеку, DLL назначение которой, выполнить экспорт некоторой функции, в...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru