Перейти к содержанию

DLL Import - непонятная ошибка


RockHammer

Рекомендуемые сообщения

Грызу гранит CreateToolhelp32Snapshot.

В общем-то, не так сложно, как выглядит на первый взгляд.

Продвинулся дальше, чтение памяти процесса и запись в него.

Пошел на сайт pinvoke.net (не рекламирую, просто там описания подобного рода функций беру) ну и взял некоторые описания.

При компиляции выдает много ошибок

 

qEETGHOpN0Q.jpg

Я взял не те описания, или студия узнала меня и отказывается компилировать, пока я не научусь нормально кодить?

#include <iostream>#include <conio.h>#include <Windows.h>#include <TlHelp32.h>#include <stdio.h>using namespace std;int main(int, char *[]){	[DllImport("kernel32.dll", SetLastError = true)]	static extern bool WriteProcessMemory(		IntPtr hProcess,		IntPtr lpBaseAddress,		IntPtr lpBuffer,		int nSize,		out IntPtr lpNumberOfBytesWritten);	[DllImport("kernel32.dll", SetLastError = true)]	static extern bool ReadProcessMemory(		IntPtr hProcess,		IntPtr lpBaseAddress,		IntPtr lpBuffer,		int dwSize,		out IntPtr lpNumberOfBytesRead);	setlocale(LC_ALL, "Russian");	char ProcessName[] = "notepad.exe";	PROCESSENTRY32 entry;	entry.dwSize = sizeof(PROCESSENTRY32);	HANDLE SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);	if (Process32First(SnapShot, &entry) == TRUE)	{		while (Process32Next(SnapShot, &entry) == TRUE)		{			if (strcmp(entry.szExeFile, ProcessName) == 0)			{				HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);				cout << "ProcessID = " << entry.th32ProcessID << endl;				printf("ProcessID (hex) = 0x%X \n", entry.th32ProcessID);				cout << "ProcessHandle = " << hProcess;				int ByteOfRead = 0;				DWORD Read = ReadProcessMemory(hProcess, 0x774DAD00, char buffer[5], 5, &ByteOfRead);				cout << Read;				CloseHandle(hProcess);			}		}	}	_getch();} 
Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Pinvoke - он для C#. Идешь в гугл, вбиваешь "имяфункции С++", читаешь, видишь внизу страницы .h-файл, нужный для работы функции. Подключил его - и вызывай, сколько захочется.

Собственно, на главной странице сайта написано:

A wiki for .NET developers

PInvoke.net is primarily a wiki, allowing developers to find, edit and add PInvoke* signatures, user-defined types, and any other information related to calling Win32 and other unmanaged APIs from managed code (written in languages such as C# or VB.NET).

Ссылка на комментарий
Поделиться на другие сайты

Pinvoke - он для C#. Идешь в гугл, вбиваешь "имяфункции С++", читаешь, видишь внизу страницы .h-файл, нужный для работы функции. Подключил его - и вызывай, сколько захочется.

Собственно, на главной странице сайта написано:

Точно, точно... Тупанул, бывает)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.