• Бесплатный ВЕБИНАР по OSINT с Екатериной Тьюринг: ➡️9 февраля в 19:00 (мск) пройдет урок

    Как безопасно искать информацию в открытых источниках

    🔥 Записаться 🔥

Работа с Dll Visual Studio C++

  • Автор темы Автор темы Ramzay
  • Дата начала Дата начала
R

Ramzay

Пытаюсь загрузить функцию из dll.
Когда упртр*цензура*ю такие слова как HINSTANCE, GetProcAddress, LoadLibrary
компилятор говорит , что не знает таких типов и функций.

Почему?
 
на [DllImport("KERNEL32.DLL",EntryPoint="MoveFileW"...

компилятор отвечает 'DllImport' : attribute not found

Тоже самое он отвечает на [ComVisibleAttribute(true)]

Что делать дальше?
 
Если я не ошибаюсь, [DllImport ... используется для вызова DLL в C#.

Мне нужно вызвать DLL в С++.

Кто-нибудь может помочь?
 
Ругаться, мой друг, не надо. Если хочешь помочь - помогай. За ссылку спасибо, разобрался.
Проблема была в этом:

using namespace System::Runtime::InteropServices;
 
Ramzay, не могли бы вы написать тут, как вы подключаете DLL?
я пытаюсь так:

static HINSTANCE hinstDLL;
hinstDLL = LoadLibrary((LPCTSTR) "NeuroSvr.dll.embed.manifest");

но у меня не получается, в чем ошибка?
 
Ramzay, не могли бы вы написать тут, как вы подключаете DLL?

Мне вызвать функцию из dll удалась без использования LoadLibrary.
Вот часть кода, которая выполняется при вызове функции Hr(String, String) из модуля hr_main.dll
[codebox]
[DllImport("hr_main.dll")]
static extern int hr(String text, String caption); // описание функции, которая находится в Dll
private void button6_Click(object sender, EventArgs e)
{
String par = "Type="
+ dataGrid1.Rows[dataGrid1.CurrentRow.Index].Cells[0].Value.ToString().Trim()
+ "~~Rnk="
+ dataGrid1.Rows[dataGrid1.CurrentRow.Index].Cells[1].Value.ToString().Trim();// Параметр функции
String Prg = "M:\\UIT\\documents\\DOG\\KL-Bank\\Scrooge\\cli_bank.hrt"; // Параметр функции

hr(Prg, par); // Вызов функции, которая находится в dll
}
[/codebox]

Кроме этого, в начале файла cs должна быть строка:
[codebox]
using System.Runtime.InteropServices;
[/codebox]

Именно из-за этой строки мне и не удавлось вызвать dll. Давно это было, но работает до сих пор.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!