我想请问一下,我想把一个公式编成DLL,假如这个公式是如果a=1,c=a*b^2,如果a=2,c=a*b^3,应该怎么写代码呢?

解决方案 »

  1.   

    历史上你学过计算机语言吗?IF...ELSE写过么?
      

  2.   

    话说在DLL里面系统提示IF是非法语言啊,你编个例子让我学习下啊
      

  3.   

    话说在DLL里面系统提示IF是非法语言啊,你编个例子让我学习下啊
      

  4.   

    您是用文本编辑器直接写个if 然后保存为dll扩展名吗?
      

  5.   

    怎么能说啥也没说呢。学习需要一个过程,你现在显然是太急了。if...else都没搞明白,就要写dll。这好比火药还没发明呢,就要造火箭......急不得
      

  6.   

    先不说dll,写成一个exe你会吗
      

  7.   

    #include<iostream>
    #include<math.h>
    using namespace std;
    int main()
    {   int B,A,C,D,G;
    double λ,Np,di,L,ρ,ui,un,νi,νw,Des,ΔP,ΔP0,Q,W,E,Ns,Fs,Nb,m,uo,F,F0,Nc,d0,Pt,As,Lb,Di,Nt,P,O;
    double Re1,Re2;
    cout<<"请输入流速(m/s):";
    cin>>ui;
    cout<<"请输入管子内径(m):";
    cin>>di;
    cout<<"请输入直管长度(m):";
    cin>>L;
    cout<<"请输入管程数:";
    cin>>Np;
    cout<<"请输入平均温度下密度(kg/m3):";
    cin>>ρ;
    cout<<"请输入平均温度下粘度(Pa·s):";
    cin>>νi;
    cout<<"请输入管壁平均温度下粘度(Pa·s):";
    cin>>νw;
    cout<<"请输入线流速(m/s):";
    cin>>un;
    cout<<"请输入管型号(光滑管代号1,粗糙管代号2):";
    cin>>B;
    cout<<"请输入质量流量:";
    cin>>m;
    cout<<"请输入横过管束中心线的形状(三角形代号3,正方形代号4):";
    cin>>C;
    cout<<"请输入管子排列方法(三角形代号3,正方形代号4,偏正方形代号5):";
    cin>>D;
    cout<<"请输入横过管束中心线的形状(三角形代号3,正方形代号4):";
    cin>>A;
    cout<<"请输入流体种类(液体代号1,气体代号2):";
    cin>>G;
    cout<<"请输入串联管程数:";
    cin>>Ns;
    cout<<"请输入折流板间距:";
    cin>>Lb;
    cout<<"请输入换热器壳体直径:";
    cin>>Di;
    cout<<"请输入换热管中心距:";
    cin>>Pt;
    cout<<"请输入折流板数目:";
    cin>>Nb;
    cout<<"请输入换热管数目:";
    cin>>Nt;
    cout<<"请输入换热管外径:";
    cin>>d0;
    Re1=ρ*ui*di/νi;
    if(B==1)
    if(Re1<=2000)
    λ=64/Re1;
    else
    λ=0.0056+(0.5/pow(Re1,0.32));
    else if(Re1<=2000)
    λ=64/Re1;
    else λ=0.01227+0.7543/pow(Re1,0.38); 
    ΔP=(pow(ui,2.0)*λ*Np*L*ρ/(2*di))*pow(νi/νw,-0.14)+4*pow(ui,2.0)*ρ*Np/2+1.5*pow(un,2.0)*ρ/2;
    Q=(pow(ui,2.0)*λ*Np*L*ρ/(2*di))*pow(νi/νw,-0.14);
    W=4*pow(ui,2.0)*ρ*Np/2;
    E=1.5*pow(un,2.0)*ρ/2;         //管压降计算结束


    if(A==3)
    Des=1.10*pow(Pt,2.0)/d0-d0;
    else
    Des=1.27*pow(Pt,2.0)/d0-d0;
    As=Lb*Di*(1-d0/Pt); uo=m/(ρ*As); Re2=Des*uo*ρ/νi; if(Re2<100)
    F0=47.1*pow(Re2,-0.965);
    else if(100<=Re2&&Re2<300)
    F0=13*pow(Re2,-0.685);
    else if(300<=Re2&&Re2<1000)
    F0=3.2*pow(Re2,-0.44);
    else if(1000<=Re2)
    F0=0.505*pow(Re2,-0.176);
    if(C==3)
    Nc=1.1*pow(Nt,0.5);
    else Nc=1.19*pow(Nt,0.5);
    if(D==3)
    F=0.5;
    else if(D==4)
    F=0.3;
    else if(D==3)
    F=0.4;
    if(G==1)
    Fs=1.15;
    else Fs=1.0; ΔP0=Fs*Ns*(F*F0*Nc*(Nb+1)*ρ*pow(uo,2.0)/2+Nb*(3.5-2*Lb/d0)*ρ*pow(uo,2.0)/2);
    P=Fs*Ns*F*F0*Nc*(Nb+1)*ρ*pow(uo,2.0)/2;
    O=Fs*Ns*Nb*(3.5-2*Lb/d0)*ρ*pow(uo,2.0)/2;

    cout<<"管内压降为:"<<ΔP<<"\n";
    cout<<"摩擦系数为:"<<λ<<"\n";
    cout<<"流体雷诺数:"<<Re1<<"\n";
    cout<<"流体流过直管压降为:"<<Q<<"\n";
    cout<<"流体管程回弯压降为:"<<W<<"\n";
    cout<<"流体管箱进出口压降为:"<<E<<"\n";
    cout<<"\n";
    cout<<"壳程为:"<<Re2<<"\n";
    cout<<Des<<"\n";
    cout<<As<<"\n";
    cout<<uo<<"\n";
    cout<<F0<<"\n";
    cout<<Nc<<"\n";
    cout<<Fs<<"\n";
    cout<<F<<"\n";
    cout<<"流体横流过管束压降为:"<<ΔP0<<"\n";
    cout<<"流体通过折流板缺口压降为:"<<P<<"\n";
    cout<<"圆缺形折流板课程压损:"<<O<<"\n";
        cin.get();
    cin.get();
    return 0;
    }这是我自己编的只是要把它改为DLL才出问题了
      

  8.   

    就是出了不明白问题才问啊,而且DLL教程太少了
      

  9.   

    先把这个main函数改一下,把输入和输出放到main函数中,把计算的部分提出来写成一个函数然后创建一个dll工程,把这个函数写进出,再导出这个函数