Привет всем!!! Прошу помощи!!!!...В общем надо нарисовать Центр внеписанной окружности треугольника Есть решение на Центр описанной окружности треугольника, помогите переделать, пожалуйста...Я уже с координатами эксперементировал, ничего не выходит... ЭТО РЕШЕНИЕ ДЛЯ ОПИСАННОЙ ОКРУЖНОСТИ ТРЕУГОЛЬНИКА Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Graphics g = CreateGraphics(); Pen p = new Pen(Color.White); int Ax = 120; int Ay = 120; int Bx = 400; int By = 150; int Cx = 150; int Cy = 300; // Середина отрезка AB double P1x = (Ax + Bx) / 2; double P1y = (Ay + By) / 2; // Прямая, перпендикулярная AB через точку P1 // x(Ax-Bx) +y(Ay-By) + C = 0 double A1 = Ax - Bx; double B1 = Ay - By; double C1 = -(P1x * A1 + P1y * B1); // То-же самое для BC double P2x = (Bx + Cx) / 2; double P2y = (By + Cy) / 2; double A2 = Bx - Cx; double B2 = By - Cy; double C2 = -(P2x * A2 + P2y * B2); double Dy = 0; double Dx = 0; // Точка пересечения прямых if (A1 != 0) { Dy = ((A2 * C1) / A1 - C2) * A1 / (B2 * A1 - B1 * A2); Dx = (-C1 - B1 * Dy) / A1; } else { Dx = ((B2 * C1) / B1 - C2) * B1 / (A2 * B1 - A1 * B2); Dy = (-C1 - A1 * Dx) / B1; } double R = Math.Floor(Math.Sqrt(Math.Pow(Ax - Dx, 2) + Math.Pow(Ay - Dy, 2))); int DxMinusR = Convert.ToInt32(Math.Floor(Dx - R)); int DyMinusR = Convert.ToInt32(Math.Floor(Dy - R)); int DxPlusR = Convert.ToInt32(Math.Floor(Dx + R)); int DyPlusR = Convert.ToInt32(Math.Floor(Dy + R)); g.DrawEllipse(p, DxMinusR, DyMinusR, DxPlusR - 102, DyPlusR - 37); Point[] lines = new Point[4]; lines[0].X = Ax; lines[0].Y = Ay; lines[1].X = Bx; lines[1].Y = By; lines[2].X = Cx; lines[2].Y = Cy; lines[3].X = Ax; lines[3].Y = Ay; g.DrawLines(p, lines); int centerX = (DxMinusR); int centerY = (DyMinusR); Brush b = new SolidBrush(Color.Red); g.FillEllipse(b, 242, 173, 5, 5); } } } Вот это рисуется А надо примерно вот так
Эм... а на нижнем рисунке окружность вписана в какой-то треугольник? если да, то в какой? Насколько я помню, центр вписанной окружности - точка пересечения серединных перпендикуляров. Зная координаты вершин треугольника: 1) находим координаты середин всех сторон 2) составляем уравнения в координатах для перпендикуляров 2-х любых сторон и решаем систему из 2-х уравнений с 2-мя неизвестными. Если есть решение проще - буду рад его услышать. Это способ, который первым пришел на ум.
WinINET или http://darkoff.ru/2012/02/ssl-на-сокетах-в-c/ или OpenSSL (в качестве примера https://kaimi.ru/2012/01/http-https-cpp-classes/)
Code: #include <Windows.h> #include <TlHelp32.h> class Hackprocess { public: PROCESSENTRY32 gameProcess; HANDLE HandleProcess; HWND HWNDCsgo; DWORD dwordClient; DWORD dwordEngine; DWORD dwordOverlay; DWORD dwordVGui; DWORD dwordServer; DWORD dwordLibCef; DWORD dwordSteam; DWORD FindProcessName(const char *ProcessName, PROCESSENTRY32 *pEntry) { PROCESSENTRY32 ProcessEntry; ProcessEntry.dwSize = sizeof(PROCESSENTRY32); HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDLE_VALUE) return 0; if (!Process32First(hSnapshot, &ProcessEntry)) { CloseHandle(hSnapshot); return 0; } do { if (!_strcmpi(ProcessEntry.szExeFile, ProcessName)) { memcpy((void *)pEntry, (void *)&ProcessEntry, sizeof(PROCESSENTRY32)); CloseHandle(hSnapshot); return ProcessEntry.th32ProcessID; } } while (Process32Next(hSnapshot, &ProcessEntry)); CloseHandle(hSnapshot); return 0; } DWORD getThreadByProcess(DWORD DwordProcess) { THREADENTRY32 ThreadEntry; ThreadEntry.dwSize = sizeof(THREADENTRY32); HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); if (hSnapshot == INVALID_HANDLE_VALUE) return 0; if (!Thread32First(hSnapshot, &ThreadEntry)) { CloseHandle(hSnapshot); return 0; } do { if (ThreadEntry.th32OwnerProcessID == DwordProcess) { CloseHandle(hSnapshot); return ThreadEntry.th32ThreadID; } } while (Thread32Next(hSnapshot, &ThreadEntry)); CloseHandle(hSnapshot); return 0; } DWORD GetModuleNamePointer(LPSTR LPSTRModuleName, DWORD DwordProcessId) { MODULEENTRY32 lpModuleEntry = { 0 }; HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, DwordProcessId); if (!hSnapShot) return NULL; lpModuleEntry.dwSize = sizeof(lpModuleEntry); BOOL RunModule = Module32First(hSnapShot, &lpModuleEntry); while (RunModule) { if (!strcmp(lpModuleEntry.szModule, LPSTRModuleName)) { CloseHandle(hSnapShot); return (DWORD)lpModuleEntry.modBaseAddr; } RunModule = Module32Next(hSnapShot, &lpModuleEntry); } CloseHandle(hSnapShot); return NULL; } void runSetDebugPrivs() { HANDLE HandleProcess = GetCurrentProcess(), HandleToken; TOKEN_PRIVILEGES priv; LUID LUID; OpenProcessToken(HandleProcess, TOKEN_ADJUST_PRIVILEGES, &HandleToken); LookupPrivilegeValue(0, "seDebugPrivilege", &LUID); priv.PrivilegeCount = 1; priv.Privileges[0].Luid = LUID; priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(HandleToken, false, &priv, 0, 0, 0); CloseHandle(HandleToken); CloseHandle(HandleProcess); return; } void memoryType() { runSetDebugPrivs(); while (!FindProcessName("csgo.exe", &gameProcess)) Sleep(12); while (!(getThreadByProcess(gameProcess.th32ProcessID))) Sleep(12); HandleProcess = OpenProcess(PROCESS_ALL_ACCESS, false, gameProcess.th32ProcessID); while (dwordClient == 0x0) dwordClient = GetModuleNamePointer("client.dll", gameProcess.th32ProcessID); while (dwordEngine == 0x0) dwordEngine = GetModuleNamePointer("engine.dll", gameProcess.th32ProcessID); while (dwordVGui == 0x0) dwordVGui = GetModuleNamePointer("vguimatsurface.dll", gameProcess.th32ProcessID); while (dwordServer == 0x0)dwordServer = GetModuleNamePointer("server.dll", gameProcess.th32ProcessID); HWNDCsgo = FindWindow(NULL, "Counter-Strike: Global Offensive"); return; } }; extern Hackprocess CSSource; Здрастье я начала изучать взлом игр и хотел бы что означает GetModuleNamePointer
Как правило, процесс (в данном случае игра) подгружает динамические библиотеки в память и использует их функции. Эти динамические библиотеки (в данном случае client.dll, engine.dll, и др.), загруженные в память, называются модулями. Функция GetModuleNamePointer выдаёт, по какому адресу в памяти расположен тот или иной модуль. Pointer - это указатель на область в оперативной памяти.
программирую на си. хочу написать что то с библиотекой gtk. Есть какая нибудь книжка толковая или цикл статей?
Помогите задачку решить 2 дня бьюсь... надо чтоб вот так было A BC DEF GHIJ KLMNO PQRSTU а получается так A BC CDE DEFG EFGHI FGHIJK GHIJKLM HIJKLMNO IJKLMNOPQ JKLMNOPQRS KLMNOPQRSTU Code: printf("\n\n"); printf("Задача №4\n"); unsigned char abc[SIZE] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; short x, i; for (x = 0; x < 11; x++) { for (i=(0 +x); i <= x+x; i+=1) printf("%c", abc[i]); printf("\n"); } Задача по циклам по идее простая, но у меня не получается. Сначала даже посимвольное присвоение делал, например char ch = 'A'; и цикл до 'U'; но результат тот же.
PHP: #include <stdio.h>int main(){ const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const char* ptr = letters; int i; int count = 0; while(*ptr) { i = ++count; while(i-- && *ptr) printf("%c", *ptr++); printf("\n"); } return 0;}
Доброго дня. такой вопрос "мне нужно заинжектить мою длл написанную на С# в процесс через сторонюю длл написанную на С++" возможно ли такое и как это сделать?
Делаешь LoadLibrary твоей c#-повской dll в DLL_PROCESS_ATTACH той, что на С++, пишешь прототип (typedef int (*MyFunc) (int a, int b)) необходимой тебе для вызова функции в той же с++, потом - Прототип var=(Прототип)GetProcAddress(handle(который вернул LoadLibrary), название функции). var(int a, int b)
CemuleDlg dlg; dlg.DoModal(); как узнать название функции обрабатывающей сообщения? ,никогда не пользовался этой библиотекой.
Ребят, подскажите как вызвать функцию нативную напрямую из ядра. Пробую так: _ZwAllocateVirtualMemory zwalloc=GetProcAddress(LoadLibraryA("ntkrnlpa.exe"),"ZwAllocateVirtualMemory"); zwalloc( ( HANDLE ) -1,&addr, 0, &size, MEM_COMMIT | MEM_RESERVE , PAGE_EXECUTE_READWRITE ); //тут падает.
Code: typedef int (__stdcall *ptrMyFunc)(int x, int y); //... ptrMyFunc MyFunc; //... MyFunc = ExAllocatePoolWithTag(NonPagedPool, 0x40, 'kcaH'); if(MyFunc) { *(int*)MyFunc = 0xc30a048d; //lea eax, [ecx+edx]; ret; buff[0] = MyFunc(buff[0], buff[1]); ExFreePoolWithTag(MyFunc, 'kcaH'); } //...
Как сделать что б программа работала в фоновом режиме ? То есть принимала команды в неактивном окне. К пример запустил программу переключился на другое окно и нажал комбинацию клавиш или клавишу и прога начала выполнять действия . Полазив по инету натыкался на темы что надо делать hook в процесс или что-то такое. Разложите по полочкам пож. с чего начать копать ?