Zireael пишет:
А зачем передавать параметры строкой и потом разбирать её?
Так не проще?:
C++ (Отобразить)CODE:#include "pch.h"
#include <iostream>
using namespace std;
double M_PI = 3.1415926535;
extern "C" __declspec(dllexport) int Get_Angle(int x1, int y1, int x2, int y2, int azimuth)
{
// Вычисляем азимут в радианах
double azimuth_rad = azimuth * M_PI / 180.0;
// Вычисляем угол между вектором и азимутом
int dx = x2 - x1;
int dy = y2 - y1;
int angle_rad = atan2(dy, dx) - azimuth_rad;
// Преобразуем угол в градусы
int angle_deg = angle_rad * 180.0 / M_PI;
// Приводим угол к диапазону от -180 до 180 градусов
if (angle_deg > 180.0) angle_deg -= 360.0;
else if (angle_deg < -180.0) angle_deg += 360.0;
// это можно удалить
char buf[999];
snprintf(buf, sizeof(buf), "%d%c %d%c %d%c %d%c %d", x1, ',', y1, ',', x2, ',', y2, ',', azimuth);
MessageBoxA(0, buf, "Kibor", MB_OK);
/////
return angle_deg;
}
Kibor (Отобразить)CODE:external(INT, "Get_Angle", "Get_Angle", "MyDllKib.dll");
int result = Get_Angle(100, 200, 300, 400, 350);
messagebox(result);
Добрый человек, объясни мне не далёкому что это за параметры и откуда они берутся?
external(INT, "Get_Angle", "Get_Angle", "MyDllKib.dll"
; первый параметр я так понял означает что что то мы получим целочисленное, 2й параметр я так понял что это название функции которую мы будем вызывать с параметрами, 3й остаётся под вопросом, 4й параметр это название самой функции, я правильно рассуждаю? если да то откуда мы берём 3й параметр в external?