以下是引用吹水佬在2017-3-4 11:46:31的发言:
BAC.dll无P2T97和P2HL97函数
P2xxx部分函数只有:
文件名: C:\TEMP\BAC.dll
原始文件名:UEwasp.dll
------------------------------------------------
序号 虚拟地址 函数名
------------------------------------------------
0000001C 000012B0 P2CPG
0000001D 00001260 P2CPL
0000001E 00001350 P2CVG
0000001F 00001300 P2CVL
00000020 000013F0 P2EG
00000021 000013A0 P2EL
00000022 00001850 P2EPSG
00000023 00001800 P2EPSL
00000024 000015D0 P2ETAG
00000025 00001580 P2ETAL
00000026 00001990 P2G
00000027 000010D0 P2HG
00000028 00001080 P2HL
00000029 00001530 P2KSG
0000002A 000014E0 P2KSL
0000002B 00001920 P2L
0000002C 000018E0 P2NG
0000002D 000018A0 P2NL
0000002E 000017B0 P2PRNG
0000002F 00001760 P2PRNL
00000030 00001710 P2RAMDG
00000031 000016C0 P2RAMDL
00000032 00001170 P2SG
00000033 00001120 P2SL
00000034 00001490 P2SSPG
00000035 00001440 P2SSPL
00000036 00001030 P2T
00000037 00001670 P2UG
00000038 00001620 P2UL
00000039 00001210 P2VG
0000003A 000011C0 P2VL
就用P2HL当作P2HL97函数说说:
#include <stdio.h>
#include <windows.h>
typedef void WINAPI (*P2HL)(double, double*, int*);
main()
{
HMODULE hLib;
hLib = LoadLibrary("BAC.dll");
if (hLib != 0)
{
P2HL p2hl = (P2HL)GetProcAddress(hLib, "P2HL");
if (p2hl != 0)
{
double P=0, H=0; //假设=0
int Range=0;
p2hl(P, &H, &Range);
printf("%lf %d\n", H, Range);
}
FreeLibrary(hLib);
}
}
P是我要给定的已知值,H是计算结果,要返回给我的,
Range是一个调用成功与否得标志!
Range=0 表示输入的参数超限,不可能有对应的值!
Range=其它值,表示输入参数对应的状态点所处的区域。