BaseClasses\cprop.cpp(119) : error C2664:cannot convert parameter

问题描述:

BaseClasses\cprop.cpp(119) : error C2664:GetDialogSize' : cannot convert parameter 2 from  

'  long(struct HWND__ *,unsigned int,unsigned int,long)' to

'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'

 

最后解决方法:
将static INT_PTR CALLBACK DialogProc(HWND hwnd,
                                       UINT uMsg,
                                       WPARAM wParam,
                                       LPARAM lParam);

改为:static int CALLBACK DialogProc(HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam);

其中stdcall为调用方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 F16 飞机运动方程的 C++ 实现: ```cpp #include <iostream> #include <cmath> using namespace std; const double g = 9.81; // 重力加速度 const double rho = 1.225; // 空气密度 const double S = 27.87; // 翼面积 const double b = 9.14; // 翼展 const double cbar = 3.05; // 平均弦长 const double m = 9989.0; // 飞机质量 const double Ixx = 12873.0; // 滚转惯量矩 const double Iyy = 75673.0; // 俯仰惯量矩 const double Izz = 85552.0; // 偏航惯量矩 const double Ixz = 1331.0; // 横摆惯量矩 const double Sprop = 0.2027; // 推进器面积 const double Kmotor = 0.054; // 发动机常数 const double Tmax = 93800.0; // 最大推力 const double rprop = 0.5; // 推进器半径 const double Cd0 = 0.034; // 零升阻力系数 const double K = 0.055; // 升力斜率 const double Cdb = 0.8; // 机身阻力系数 const double Cdp = -0.07; // 拍翼阻力系数 const double Cdr = 0.01; // 舵偏转阻力系数 const double Cnda = -0.1; // 副翼升力斜率 const double Cndr = -0.027; // 方向舵升力斜率 const double Clp = -0.51; // 滚转阻尼导数 const double Clr = 0.28; // 偏航阻尼导数 const double Cmq = -0.03; // 俯仰阻尼导数 const double Cnr = -0.06; // 偏航自旋导数 const double Cnp = 0.022; // 滚转自旋导数 // 计算升力系数 double calcCL(double alpha) { return K * alpha; } // 计算阻力系数 double calcCD(double alpha, double beta) { double CD0 = pow(Cd0 + (K * alpha), 2) / (pi * S * b * cbar); double k = 1 / (pi * e * AR); double CL2 = pow(calcCL(alpha), 2); double beta2 = pow(beta, 2); return CD0 + k * CL2 + k * beta2; } int main() { double t = 0; // 时间 double dt = 0.1; // 时间步长 double x = 0; // x轴位置 double y = 0; // y轴位置 double z = 0; // z轴位置 double u = 100; // x轴速度 double v = 0; // y轴速度 double w = 0; // z轴速度 double phi = 0; // 滚转角 double theta = 0; // 俯仰角 double psi = 0; // 偏航角 double p = 0; // 滚转角速度 double q = 0; // 俯仰角速度 double r = 0; // 偏航角速度 double alpha = 0; // 迎角 double beta = 0; // 侧滑角 double T = 0; // 推力 double mu = 0; // 螺旋桨转速 double delta_e = 0; // 升降舵偏转角 double delta_a = 0; // 副翼偏转角 double delta_r = 0; // 方向舵偏转角 while (t < 100) { // 计算升力和阻力系数 double CL = calcCL(alpha); double CD = calcCD(alpha, beta); // 计算各个力和力矩 double L = 0.5 * rho * pow(u, 2) * S * CL; double D = 0.5 * rho * pow(u, 2) * S * CD; double Y = 0.5 * rho * pow(u, 2) * S * beta; double l = 0.5 * rho * pow(u, 2) * S * b * Cl; double m = 0.5 * rho * pow(u, 2) * S * cbar * Cm; double n = 0.5 * rho * pow(u, 2) * S * b * Cn; // 计算推力和推力力矩 T = Tmax * mu; double Qprop = 0.5 * rho * pow(u, 2) * Sprop * (Cprop + pow((1 - mu), 2)); // 计算升降舵、副翼和方向舵的效应 double delta_CLde = Clda * delta_e; double delta_CLda = Clda * delta_a; double delta_CDda = Cdb + pow((Cnda * delta_a), 2) / (pi * e * AR); double delta_Ydr = Cndr * delta_r; // 计算状态变量的变化率 double u_dot = r * v - q * w - g * sin(theta) + (1 / m) * (T - D - L); double v_dot = p * w - r * u + g * sin(phi) * cos(theta) - (1 / m) * Y; double w_dot = q * u - p * v + g * cos(phi) * cos(theta) - (1 / m) * (L + Qprop); double phi_dot = p + (sin(phi) * tan(theta)) * q + (cos(phi) * tan(theta)) * r; double theta_dot = cos(phi) * q - sin(phi) * r; double psi_dot = (sin(phi) / cos(theta)) * q + (cos(phi) / cos(theta)) * r; double p_dot = (Izz * l + Ixz * n) / (Ixx * Izz - pow(Ixz, 2)); double q_dot = (m * r - Ixx * p * r + Ixz * (p * p - r * r)) / Iyy; double r_dot = (Ixz * l + Ixx * n) / (Ixx * Izz - pow(Ixz, 2)); // 更新状态变量 u += u_dot * dt; v += v_dot * dt; w += w_dot * dt; phi += phi_dot * dt; theta += theta_dot * dt; psi += psi_dot * dt; p += p_dot * dt; q += q_dot * dt; r += r_dot * dt; alpha = atan2(w, u); beta = asin(v / sqrt(pow(u, 2) + pow(v, 2) + pow(w, 2))); delta_e = 0; // TODO: 根据控制输入计算升降舵偏转角 delta_a = 0; // TODO: 根据控制输入计算副翼偏转角 delta_r = 0; // TODO: 根据控制输入计算方向舵偏转角 // 更新时间 t += dt; } return 0; } ``` 需要注意的是,这只是一个简单的模型,实际的 F16 飞机运动方程要比这个复杂得多。此外,还需要根据实际情况调整各个参数的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值