NGTOOLS_Dev-C/dllmain.c

186 lines
6.8 KiB
C
Raw Normal View History

2025-10-31 14:12:55 +00:00
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include "NGCal.h"
#include "FlowCal.h"
DLLIMPORT int __stdcall Test(void)
{
return 33;
}
DLLIMPORT int __stdcall NGToolsCal(void)
{
FlowParSTRUCT flowParams = {0};
NGParSTRUCT ngParams = {0};
// <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
flowParams.dPatm = 0.0981; // <20><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD>ѹ(bar)
flowParams.dPf = 1.48; // ѹ<><D1B9>(MPa)
flowParams.dPfType = 0; // 0=<3D><>ѹ<EFBFBD><D1B9>1=<3D><>ѹ
flowParams.dDp = 12.50; // <20><>ѹ(kPa)
flowParams.dTf = 15; // <20><EFBFBD>(<28><>C)
flowParams.dCbtj = 0; // <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0=<3D><>׼״̬)
// <20><><EFBFBD>ùܵ<C3B9><DCB5><EFBFBD><EFBFBD><EFBFBD>
flowParams.dPipeD = 259.38; // <20>ܵ<EFBFBD><DCB5>ھ<EFBFBD>(mm)
flowParams.dOrificeD = 150.25; // <20>װ<EFBFBD><D7B0>׾<EFBFBD>(mm)
flowParams.dPipeType = 0; // <20>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>
flowParams.dPtmode = 0; // ȡѹ<C8A1><D1B9>ʽ(0=<3D><><EFBFBD><EFBFBD>ȡѹ<C8A1><D1B9>1=<3D>ǽ<EFBFBD>ȡѹ)
// <20><><EFBFBD>ò<EFBFBD><C3B2>ϲ<EFBFBD><CFB2><EFBFBD>
flowParams.dPipeMaterial = 2; // 20<32>Ÿ<EFBFBD>
flowParams.dOrificeMaterial = 9; // <20><><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ʾ<><CABE>: 95%<25><><EFBFBD>飬5%<25><><EFBFBD><EFBFBD>)
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(GB/T 21446-2008 <20><><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
int i=0;
for ( i = 0; i < NUMBEROFCOMPONENTS; i++) {
flowParams.dNG_Compents[i] = 0.0; // <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
}
flowParams.dNG_Compents[0] = 88.36; // <20><><EFBFBD><EFBFBD>(CH4)
flowParams.dNG_Compents[1] = 0.68; // <20><><EFBFBD><EFBFBD>(N2)
flowParams.dNG_Compents[2] = 1.57; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼(CO2)
flowParams.dNG_Compents[3] =6.25; // <20><><EFBFBD><EFBFBD>(C2H6)
flowParams.dNG_Compents[4] = 2.4; // <20><><EFBFBD><EFBFBD>(C3H8)
flowParams.dNG_Compents[5] = 0.00; // ˮ(H2O)
flowParams.dNG_Compents[6] = 0.00; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(H2S)
flowParams.dNG_Compents[7] = 0.04; // <20><><EFBFBD><EFBFBD>(H2)
flowParams.dNG_Compents[8] = 0.00; // һ<><D2BB><EFBFBD><EFBFBD>̼(CO)
flowParams.dNG_Compents[9] = 0.00; // <20><><EFBFBD><EFBFBD>(O2)
flowParams.dNG_Compents[10] = 0.15; // <20><EFBFBD><ECB6A1>(i-C4H10)
flowParams.dNG_Compents[11] = 0.35; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(n-C4H10)
flowParams.dNG_Compents[12] = 0.05; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(i-C5H12)
flowParams.dNG_Compents[13] = 0.1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(n-C5H12)
flowParams.dNG_Compents[14] = 0.01; // <20><><EFBFBD><EFBFBD>(C6H14)
flowParams.dNG_Compents[15] = 0.0; // <20><><EFBFBD><EFBFBD>(C7H16)
flowParams.dNG_Compents[16] = 0.0; // <20><><EFBFBD><EFBFBD>(C8H18)
flowParams.dNG_Compents[17] = 0.0; // <20><><EFBFBD><EFBFBD>(C9H20)
flowParams.dNG_Compents[18] = 0.0; // <20><><EFBFBD><EFBFBD>(C10H22)
flowParams.dNG_Compents[19] = 0.04; // <20><><EFBFBD><EFBFBD>(He)
flowParams.dNG_Compents[20] = 0.0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3BAAF>
OFlowCal(&flowParams, &ngParams);
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ:\n");
printf("<EFBFBD><EFBFBD>׼<EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dCbtj);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>ѹ<EFBFBD><EFBFBD>: %.2f\n", flowParams.dPb_M);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><EFBFBD><EFBFBD>: %.2f\n", flowParams.dTb_M);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>ѹ<EFBFBD><EFBFBD>: %.2f\n", flowParams.dPb_E);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><EFBFBD><EFBFBD>: %.2f\n", flowParams.dTb_E);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>: %.2f Pa\n", flowParams.dPatm);
printf("<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
for ( i = 0; i < 21; i++) {
printf(" <20><><EFBFBD><EFBFBD> %d: %.6f\n", i, flowParams.dNG_Compents[i]);
}
printf("\n<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
printf("<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dMeterType);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dCoreType);
printf("ȡѹ<EFBFBD><EFBFBD>ʽ: %d\n", flowParams.dPtmode);
printf("<EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dPipeType);
printf("<EFBFBD>ܵ<EFBFBD><EFBFBD>ھ<EFBFBD>: %.2f mm\n", flowParams.dPipeD);
printf("<EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dPipeMaterial);
printf("<EFBFBD>װ<EFBFBD>ֱ<EFBFBD><EFBFBD>: %.2f mm\n", flowParams.dOrificeD);
printf("<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dOrificeMaterial);
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:\n");
printf("ѹ<EFBFBD><EFBFBD>: %.2f Pa\n", flowParams.dPf);
printf("ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", flowParams.dPfType);
printf("<EFBFBD><EFBFBD>: %.2f K\n", flowParams.dTf);
printf("<EFBFBD><EFBFBD>ѹ: %.2f Pa\n", flowParams.dDp);
printf("<EFBFBD>DZ<EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dMeterFactor);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.2f\n", flowParams.dPulseNum);
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dE);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dFG);
printf("<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dFT);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dDViscosity);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dDExpCoefficient);
printf("<EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><EFBFBD>: %.2f\n", flowParams.dRnPipe);
printf("<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dBk);
printf("<EFBFBD>ܵ<EFBFBD><EFBFBD>ֲڶ<EFBFBD>: %.6f\n", flowParams.dRoughNessPipe);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dCd);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", flowParams.dCdCorrect);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dCdNozell);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f Nm3/s\n", flowParams.dVFlowb);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f m3/s\n", flowParams.dVFlowf);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f t/s\n", flowParams.dMFlowb);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f MJ/s\n", flowParams.dEFlowb);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f m/s\n", flowParams.dVelocityFlow);
printf("ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ: %.6f\n", flowParams.dPressLost);
printf("ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", flowParams.dBeta);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>: %.6f\n", flowParams.dKappa);
printf("ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", flowParams.dFpv);
printf("״̬: %ld\n", ngParams.lStatus);
printf("ǿ<EFBFBD>Ƹ<EFBFBD><EFBFBD>±<EFBFBD>־: %d\n", ngParams.bForceUpdate);
printf("<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:\n");
for ( i = 0; i < 21; i++) {
printf(" <20><><EFBFBD><EFBFBD> %d: %.6f\n", i, ngParams.adMixture[i]);
}
printf("<EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d\n", ngParams.dCbtj);
printf("<EFBFBD><EFBFBD>׼ѹ<EFBFBD><EFBFBD>: %.2f Pa\n", ngParams.dPb);
printf("<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>: %.2f K\n", ngParams.dTb);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>: %.2f Pa\n", ngParams.dPf);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.2f K\n", ngParams.dTf);
printf("\nAGA 8 <20><>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
printf("ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", ngParams.dMrx);
printf("<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", ngParams.dZb);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", ngParams.dZf);
printf("<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", ngParams.dFpv);
printf("<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ħ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>: %.6f moles/dm3\n", ngParams.dDb);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ħ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>: %.6f moles/dm3\n", ngParams.dDf);
printf("<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>: %.6f kg/m3\n", ngParams.dRhob);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>: %.6f kg/m3\n", ngParams.dRhof);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>: %.6f\n", ngParams.dRD_Ideal);
printf("ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>: %.6f\n", ngParams.dRD_Real);
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", ngParams.dHo);
printf("ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f J/kg\n", ngParams.dH);
printf("ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f J/kg-mol.K\n", ngParams.dS);
printf("<EFBFBD><EFBFBD><EFBFBD>붨ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f J/kg-mol.K\n", ngParams.dCpi);
printf("ʵ<EFBFBD>ʶ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f J/kg-mol.K\n", ngParams.dCp);
printf("ʵ<EFBFBD>ʶ<EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD><EFBFBD>: %.6f J/kg-mol.K\n", ngParams.dCv);
printf("<EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD>: %.6f\n", ngParams.dk);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>: %.6f\n", ngParams.dKappa);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f m/s\n", ngParams.dSOS);
printf("<EFBFBD>ٽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %.6f\n", ngParams.dCstar);
printf("\n<EFBFBD><EFBFBD>λĦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: %.6f\n", ngParams.dHhvMol);
printf("<EFBFBD><EFBFBD>λĦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: %.6f\n", ngParams.dLhvMol);
return 1;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
{
break;
}
case DLL_PROCESS_DETACH:
{
break;
}
case DLL_THREAD_ATTACH:
{
break;
}
case DLL_THREAD_DETACH:
{
break;
}
}
/* Return TRUE on success, FALSE on failure */
return TRUE;
}