Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 115
1

Dll вызов метода

30.10.2016, 20:37. Показов 748. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть dll библиотека "reser" в ней есть метод ShowMess в которые передается строка. Как мне его вызвать средствами winapi?
Вывоз библиотеки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool inject_dll(HANDLE hProcess)
{
    char fullPath[MAX_PATH] = "reser.dll"; 
    LPVOID libAddr, llParam;
 
    libAddr = (LPVOID)GetProcAddressHandle( GetModuleHandleA("kernel32.dll"), "LoadLibraryA" );
    llParam = (LPVOID)VirtualAllocEx( hProcess, NULL, strlen(fullPath) + 1, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
 
    WriteProcessMemory( hProcess, (LPVOID)llParam, fullPath, strlen(fullPath) + 1, NULL);
    CreateRemoteThread( hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)libAddr, (LPVOID)llParam, 0, NULL);
    
    return 1;
}
Библиотека
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace ClassLibrary1
{
    public class Func
    {
        public static void ShowMess(string s)
        {
            Go(s);
        }
 
        private static void Go(string s)
        {
            MessageBox.Show(s);
            return;
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2016, 20:37
Ответы с готовыми решениями:

Вызов функции из DLL
Здравствуйте. Я, вообще-то, на Си не писал никогда. Для моих нужд хватало делфи и VB, но тут...

Вызов функции из dll
Доброго времени суток! Пытаюсь вызвать функцию, которая находится в библиотеке следующим способом:...

Не хочет работать вызов из dll
Я хочу сделать dll-ку и поместить её в одну папку с WinRAR'ом. А в реестре путь поменять на эту...

Вызов процедуры c парметрами из dll
В dll файле прописана простая процедура, которая принимает указатель на блок памяти(строку) и...

3
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
31.10.2016, 09:45 2
Для экспорта функций из управляемого кода (коим по умолчанию является код C#) их нужно помечать спец атрибутом "DllExport", как именно - нужно спрашивать у знатоков C#, а точнее .NET
0
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 115
31.10.2016, 11:02  [ТС] 3
Цитата Сообщение от Operok Посмотреть сообщение
экспорта функций
А если библиотека на c++ написана будет?
0
Администратор
Эксперт .NET
17558 / 13780 / 5299
Регистрация: 17.03.2014
Сообщений: 28,258
Записей в блоге: 1
01.11.2016, 01:09 4
Sonfiree, методы в .NET сборке не экспортируются как пригодные для вызова из неуправляемого кода. Есть библиотека UnmanagedExports с помощью которой можно получить желаемое поведение. Как уже отметил Operok на прикладном уровне это сводится в применению атрибута DllExport. За кулисами конечно более сложные действия происходят. Однако даже с таким механизмом я бы не стал писать dll с экспортируемыми методами на .NET. Лучше использовать любой неуправляемый язык или, если такой возможности нет, тщательно протестировать полученное решение чтобы быть уверенным в его качестве.
0
01.11.2016, 01:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2016, 01:09
Помогаю со студенческими работами здесь

Инжектор dll, не выполняется вызов MessageBox
имеется код: #include <windows.h> #include <TlHelp32.h> #include <iostream> using namespace...

Вызов Dialog'a из DLL через VBA
Проблема такая. Пишется модуль для обработки данных из Access с последующим выводом в файл....

Явное подключение DLL и вызов функции из неё
как сделать чтобы не было ошибки при нажатии справка-о программе case IDM_ABOUT:...

Вызов функции из exe в который инжектирована dll
Как вызвать функцию из exe в который инжектирована dll(из этой dll) зная адрес функции(например...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru