//////////////////////////////////////////////////////////foxfunc.cpp
. b* U. I C" e3 t; D: ^6 j. \: G. t5 w# \
//FoxFunc.cpp : Defines the entry point for the DLL application.' _6 J8 E, F& i2 t+ Q9 B, x
//% P) k7 ~% Y0 i0 k2 w4 D* [
#include<string.h>3 x8 P5 \3 _" q1 _
#include<stdio.h>, h) z$ f4 V6 w; M x2 b
#include<io.h>$ c1 W C! v; v w2 D
#include<math.h>
8 z1 g5 x( A$ S0 ?: n; z#include<iostream>
8 N5 y7 f8 X% A# n#include"stdafx.h"2 a1 Y! R9 o; A$ T% ]4 n6 q$ Y$ I* [
#include"FoxFunc.h"* s, n, k$ s& K" x7 k: a
usingnamespace std;* R; x# x5 ^$ u, A, j( V/ T8 ^
BOOLAPIENTRY DllMain( HANDLE hModule, - |9 P+ R7 P3 J/ k9 C1 `# V$ F
DWORDul_reason_for_call, # \- |) }9 H; p8 L5 M( ^& I" \ ?$ C
LPVOIDlpReserved- [. m$ N" \) O3 L; m- x
)
1 @ v0 j7 v+ E- K- b9 b{
; |3 S. l2 _# g8 vswitch(ul_reason_for_call)
' H T, @) \# _{
! F7 Y7 O/ s8 hcaseDLL_PROCESS_ATTACH:
8 |5 s* l9 w! DcaseDLL_THREAD_ATTACH:
1 f+ C* Y9 W( `9 _% rcaseDLL_THREAD_DETACH:) v( Y8 L$ Y. D
caseDLL_PROCESS_DETACH:
4 a. a- i7 }) F4 `+ sbreak;
8 O8 \+ k: C \}3 F! q! J* H2 j/ j5 Y0 z- ]- ]
returnTRUE;7 y; C( e3 B% A! g% e8 d
}
4 ^/ u$ ^5 x; S2 `. Y# N+ E5 O: L! y//计算收盘价的均价,一个常数参数,表示计算周期
; q& o$ o9 W) ]0 a. N! h! D//调用方法:
" v9 n% P5 c) W. A& ~ r//"FOXFUNC@MYMACLOSE"(5)
8 y0 m/ B* [( Y( b6 t, s6 r/*1 T% K3 ]# I- j! q
//extern "C" double __cdecl ppow10(double ctemp,doublelength); - - - > wrong, extern "C" is to declare pow10coming from a .dll or .lib3 ^* V4 Y' J" O/ U$ m4 {2 M
//extern "C" double ppow10(double ctemp,double length); - - -> both are the same
1 h- _* V7 a% A) B R+ I m! L*/
, j4 G _9 u: T' textern"C" double __cdecl ppow10(double ,double );
i2 O7 v) e( @( }8 P4 x- I//double ppow10(double ,double ); / l" f; }, d- N! i: d5 A
//call pow10() by __cdecl
+ F+ A$ A& P+ k+ m n) a/ `//!!!!!!!! use "C" for Microsoft visual C++ compiler B1 @+ n+ G: z W
//!!!!!!!! use "C" for Microsoft visual C++ compiler
" _9 [9 w! c7 V2 ^- C1 q! r3 f//!!!!!!!! use "C" for Microsoft visual C++ compiler- M4 d& y! A- O- i J
//!!!!!!!! use "C" for Microsoft visual C++ compiler0 r" o! g. P, Z' ?; l, |$ ~
//!!!!!!!! use "C" for Microsoft visual C++ compiler( F2 u) G- h" T! P: p' l. n
__declspec(dllexport)int WINAPI MYMACLOSE(CALCINFO* pData)" R5 S4 [% r! L$ o( E# K c" a" i( p
{& {. S! Y/ M, t# |3 n
if( // pData->m_pfParam1 && //参数1有效
; p" O8 X0 } I5 `3 x//pData->m_nParam1Start<0 && //参数1为常数$ h' ?# m) r6 F" S8 D5 u
//pData->m_pfParam2==NULL ) //仅有一个参数6 K8 B: ?; A) E4 y/ Z8 i1 y; G' n) @
//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_pfParam42 a2 I' |5 @, i; w
//&& pData->m_pfParam5 && pData->m_pfParam6 &&pData->m_nParam1Start>=0 &&$ J" W. m2 }" o {- [
//pData->m_pfParam7==NULL)3 S9 {. i: X( ?3 d7 T
//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_nParam1Start>=0 &&+ ` C6 W3 g+ C0 [
pData->m_pCalcParam[0].m_nParamStart>=0&& pData->m_pCalcParam[1].m_nParamStart>=04 n6 J E- q8 b+ N$ Q: R
&&pData->m_pCalcParam[2].m_nParamStart>=0) $ ^: ] z& o7 O/ l* G: {4 T, ]- |
{3 p. ]2 N. T& K" O/ _8 R: G9 c
floatfParam = *pData->m_pfParam4; //pointer ,pData->m_pCalcParam[3].m_nParamStart >= 0
8 W) a0 P+ o$ a/ }intnPeriod = (int)fParam; //参数1
, Y9 |8 b* _; @8 I1 ?6 m//const float* cpParam = pData->m_pfParam2; // cpParam = pointer to
1 E+ L% q/ j7 c z% N: ~3 m: b9 Jconstfloat* cpParam2 =pData->m_pCalcParam[1].m_pfParam; // cpParam =pointer to
2 {0 o7 y. e( d& _' `constfloat* cpParam3 =pData->m_pCalcParam[2].m_pfParam; // cpParam =pointer to
1 T P, U3 ~! k' Y3 g7 ]constfloat* cpParam4 =pData->m_pCalcParam[3].m_pfParam; // cpParam =pointer to . @ Y ~( N: j% m0 D( I6 {
//const float* cpParam5 =pData->m_pCalcParam[4].m_pfParam; //cpParam = pointer to . G9 O% A' `: v4 {! }- E! g
//in foxtraderoooq:"MYFUNC2010@MYMACLOSE"(c,c,c,6),colorffffff,linethick5;// cpParam5 =pData->m_pCalcParam[4].m_pfParam
( n) N" j6 v' E) U8 q4 r" n. j8 \9 \+ t' Z//pData->m_pCalcParam[5].m_fParam); //value
3 ^, Z# W0 L8 B+ R0 M//const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;8 E8 ^+ O' y4 F3 ^
//const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;: o/ W4 ?# Z2 j, q+ T7 D
//const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;* h2 ~$ S3 i. M! J3 s1 }+ m
//const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;3 v0 t, q l) w9 [6 c5 C
//const float* pValue5 = pData->m_pCalcParam[4].m_pfParam;6 L" l1 U2 _$ A o+ Y
if(nPeriod>0)
0 a- W# y# x* r' l, l( r0 ]{2 e6 o' X, c8 p6 b1 ~
floatfTotal;
" u i9 u. w; binti, j;6 U1 O7 V5 N, M
intndata = pData->m_nNumData;/ U& @1 f* i1 Q- I
//float yy[5000][1];, h: p) J7 N8 j9 _ r/ x# q: M
for( i = nPeriod-1; i < pData->m_nNumData; i++)//计算nPeriod周期的均线,数据从nPeriod-1开始有效+ t& I3 U" q# t/ u# i/ f
{' q; D$ i& e" b
fTotal= 0.0f;( \* t/ A/ k+ T( _/ L. P0 `6 a% A7 {
doublelngth=5.0;4 J( e* A& g% B* f6 O5 M" h
doublectemp=4.0;
! A2 b# Z! e2 P' s# M3 M( X0 ?- P//float yy1[5000][1];
u9 t3 q: ^( h- hfor( j = 0; j < nPeriod; j++ ) //累加4 S$ n# M* h" J- ?- {# L
{8 }1 D* ?( \( W5 p7 h
fTotal= pData->m_pData.m_fClose; // @@@@@@@ vc++ 2010 cl.exe 使pData->m_pData[i-j].m_fClose错误
) P8 G8 P+ h* s$ i}
4 N) q0 ]3 t! \( B" O) [//pData->m_pResultBuf = fTotal*1.03; //平均1 ^" U- s$ C3 d! e+ \0 Z
fTotal= cpParam3;
( z1 U7 q5 U0 i0 ypData->m_pResultBuf= fTotal*1.03; //平均
/ N, W6 i2 J, _6 O+ Y//ctemp = (double) pData->m_pResultBuf; // double & - - - >overload a float value , double * - - - > overload a pointer todouble& A7 o* V9 `. R) W3 O4 v! k1 ]" m
//pData->m_pResultBuf= (float) ppow10(ctemp,lngth); // float &- - - > overload a float value
: W: _# A; @/ X6 V" mpData->m_pResultBuf=(float) ppow10( (double) pData->m_pResultBuf,lngth); // float &- - - > overload a float value, (float) = overload5 K4 i! f. _! T* l" \
}0 {& z+ j. m; G8 [, F
returnnPeriod-1;% B. I9 Z* C: Q) m5 s; V# n
}
) P7 N8 B) q# g% S6 x w( G2 W}& M. }+ }9 R5 U* E: [% |
return-1;
* L" s/ M/ d: o- P+ u% x: h* [}
; k! {- J! u+ ?/ s6 ^ v//计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期
1 a$ g2 t! Z+ J5 L7 w//调用方法:
/ f% L! d7 R+ |* d4 m9 @& O% M//"FOXFUNC@MYMAVAR"(CLOSE-OPEN,5); A& g; y8 [5 t" B l W
__declspec(dllexport)int WINAPI MYMAVAR(CALCINFO* pData)
" g* W+ c6 K7 @1 o{
8 k# y \4 M- q4 i: lif(pData->m_pfParam1&& pData->m_pfParam2 && //参数1,2有效
\- B8 t) M7 {pData->m_nParam1Start>=0&& //参数1为序列数9 [) \$ x4 c( J. r$ o' _
pData->m_pfParam3==NULL)//有2个参数6 s4 v, X3 T" Z: }* s1 M
{
% d8 ?2 y7 Y! N' T/ Z$ H8 o4 z: iconstfloat* pValue = pData->m_pfParam1; //参数1
- e, D: w8 C3 Q1 w) zintnFirst = pData->m_nParam1Start; //有效值起始位
/ E( ^( k8 m( V$ `floatfParam = *pData->m_pfParam2; //参数2$ S+ j1 B& ^9 U
intnPeriod = (int)fParam; - X3 {5 X$ J" ]9 P( g
if(nFirst >= 0 && nPeriod > 0 )
; p& Y) \0 M7 v' s, Z{) S9 w* s' ], k0 g& k! O+ G
floatfTotal;, l5 d' t2 x# Z1 I' {, p' i+ A% x/ ~
inti, j;
{6 h! }6 e5 A" h* Afor( i = nFirst+nPeriod-1; i < pData->m_nNumData; i++ )8 S" F; G5 m( S* N& `( r
{/ u# L j. {( b9 z8 I
fTotal= 0.0f;- Z- E4 ^1 F, H: N
for( j=0; j < nPeriod; j++ ) //累加: _" ?3 o2 L+ S! Z: ^0 C8 \! P" I
fTotal+= pValue[i-j];
$ ]5 f$ L$ _; X, P! b* I rpData->m_pResultBuf= fTotal/nPeriod;//平均# A+ b" R! e5 X2 _8 s. Q
}
- |1 f& u: x1 o6 P. A0 E& wreturnnFirst+nPeriod-1;
4 V" L4 e* n1 j% q& `9 ^" c* l- h- k; V}
/ B9 T' f6 d A" M# X7 b! O}" D; t% X4 W1 d* N. V' k
return-1;
B% u7 n0 }) j' u: I) ^1 x3 O}2 L( j8 N+ K& Z& F* `: o2 ^
//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数
3 F4 A6 y) T! p! o4 C4 u7 i/*1 @6 I# U+ ^$ Q
调用方法:
/ R1 v! I5 ?; v- wMA1:=MA(CLOSE,3);
) C' ~) Z6 H& d8 ZMA2:=MA(CLOSE,6);
5 h1 f/ u3 a/ S: W7 Z& J8 XMA3:=MA(CLOSE,12);
& G* g" l- g* K. @3 u3 \9 S. \* pMA4:=MA(CLOSE,24);: Y7 p, c6 A2 [8 u- u
MYBBI:"FOXFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
, D9 L6 [) ]' Q, H! x) c: |1 L*/
h$ M! z6 d3 o5 f% g; L/ H__declspec(dllexport)int WINAPI MYBBI(CALCINFO* pData)
/ p0 A. u/ |7 l1 }! i{- M8 {8 F% O; R' k6 d- F
if( pData->m_pCalcParam[0].m_nParamStart >= 0 && I6 k0 v8 L. c2 H& }
pData->m_pCalcParam[1].m_nParamStart>= 0 &&% U/ o9 k/ r2 x
pData->m_pCalcParam[2].m_nParamStart>= 0 &&$ [9 r$ K5 I( a o/ p8 S
pData->m_pCalcParam[3].m_nParamStart>= 0 ) //4个序列都含有效数值- x$ d P3 L- v' |* Z" ?6 h
{8 t! W2 N1 s& ~: S
//计算返回的序列的第一个有效值位置
- K2 L9 Q# y1 \& H( d/ l& K8 t- XintnFirst = pData->m_pCalcParam[2].m_nParamStart;//已知返回的序列的第一个有效值位置与第4个序列一致
; k5 D: q& F. I//若不知,则
* O* E* ~0 i! |3 L/*! V, j+ ?1 ~# r
intnFirst = pData->m_pCalcParam[0].m_nParamStart;7 e9 P3 z) G8 b8 I
if( nFirst < pData->m_pCalcParam[1].m_nParamStart ) 8 Y q& B \* \2 s: T
nFirst= pData->m_pCalcParam[1].m_nParamStart;" k! G" K |; j& y, s
if( nFirst < pData->m_pCalcParam[2].m_nParamStart )
# O) w, K' a% r5 m- KnFirst= pData->m_pCalcParam[2].m_nParamStart;+ H7 [* Q& {; S! Q# z" q
if( nFirst < pData->m_pCalcParam[3].m_nParamStart )
3 I, h s& M, L' ?3 \nFirst= pData->m_pCalcParam[3].m_nParamStart;5 Y! U' ]* ~) F* |+ r
*/
/ k* L& @8 |( V3 U; o- aconstfloat* pValue1 = pData->m_pCalcParam[0].m_pfParam;" [6 T+ S4 s, Q( ~+ {) \
constfloat* pValue2 = pData->m_pCalcParam[1].m_pfParam;; `( z7 L0 J) E2 Z; p3 n
constfloat* pValue3 = pData->m_pCalcParam[2].m_pfParam;) v" U# K5 _8 u: Y' W6 r
constfloat* pValue4 = pData->m_pCalcParam[3].m_pfParam;
1 ]4 [8 p9 T- d0 P; E9 e" xconstfloat* pValue5 = pData->m_pCalcParam[4].m_pfParam;
0 m. c' F D# S. n! J7 K) jconstfloat* pValue6 = pData->m_pCalcParam[5].m_pfParam;% n4 x" f4 s+ v+ }9 X5 s
//const float* pValue1 = pData->m_pfParam1;
: [3 p- D3 [" r& D0 d//const float* pValue2 = pData->m_pfParam2;6 d1 `. X0 J0 m" P/ Q7 l
//const float* pValue3 = pData->m_pfParam3;: D" E& P; i. z
//int nNum = (int)(*pData->m_pfParam4);//实际上该例中已知nNum=4,在此用于说明数值参数的用法$ I$ K6 b; T" A
intnNum = (int)(pData->m_pCalcParam[6].m_fParam);//实际上该例中已知nNum=4,在此用于说明数值参数的用法. Q$ {) t4 U4 A# r
for(int i = nFirst; i < pData->m_nNumData; i++ )
' J6 L6 r( _1 D{
$ n# a2 V+ W. D7 W1 P3 D% EpData->m_pResultBuf= 7 ?7 F3 [) p+ _. _
//(pValue1 + pValue2 + pValue3 )/nNum;
7 P/ s9 G% t/ _(pValue1+ pValue2 + pValue3 + pValue4+pValue5 + pValue6)/nNum;/ n; C; `9 o8 l9 \$ |7 J1 o
}
7 ?: I$ _% y/ m* F( D$ MreturnnFirst;
" O. \+ d9 c8 }5 O7 V2 x4 g; n}
. V; Y" {( ~$ s! mreturn-1;
- p- r4 a6 t4 F& O0 u: q1 C}5 [ J: S# }' R' o& i" r
& P0 x) B R8 u5 ~3 u( r8 o* V* w) ?! c Z
9 z: ]- k4 f; z/ `8 h//////////////////////////////////////////////////////////////pow10.asm3 T" v& r; \3 N% P5 D1 o/ \2 C
;*******************************************************5 n0 j4 D M) F. c
;* *+ ?4 x3 A/ U$ ]; `7 ~, `* I
;* Delphi Run Library *
0 c. i n0 b/ H+ k$ N& U;* *
) b* {+ H& o, e' b;* Copyright (c) 1996,98 Inprise Corporation */ A X$ ~+ v' k" n6 _" G
;*--------------------------------------------------------------------------4 N1 d0 n# E! K: m9 h. s
;* To compile "tasm32 /ml pow10.asm" *
% O' L) ?) H4 ]' K- ?% Q- l" P;*--------------------------------------------------------------------------
: m p/ a+ u! d) q% [;*******************************************************& |5 N7 E+ g8 P* R2 e6 g
.386
2 c1 B$ y& g- X# s0 r;.MODEL flat,c (error must be in segement block must have segment; o6 a( s' z2 o' u# g9 s% u
;!!!!!11 important if ',c' is not used , must use 'public _ppow10, and'_ppow10 proc'
+ J6 T, D; T. K7 D. i;!!!!!11 important if .MODEL flat,c is not used , must use ;_TEXTSEGMENT WORD PUBLIC4 s# c6 K1 R+ D( }" H9 }) P2 O
;'CODE'..._TEXT ENDS and must use 'public _ppow10 and '_ppow10 proc'
) ~% L. r6 v4 G% B. J8 C0 p2 Z/ u; a.MODELflat,c ; just use .code, no need for segment,!!!!!11 important if',c' is used , must use 'public ppow10, and 'ppow10 proc'
2 V/ Y, m) g7 B# H2 I. ]& X3 R6 k;ppow10 PROTO,aVal:PTR REAL8, bVal:PTR REAL8
; ~, _0 t$ [3 c4 Q; a( B* y- j( X' V;includeE:\Vsource\masm32\INCLUDE\windows.inc% o, L3 D' m N- H( q
;includeE:\Vsource\masm32\INCLUDE\user32.inc" W; Z/ I) U2 J* s4 g. f
;includeE:\Vsource\masm32\INCLUDE\kernel32.inc4 ^- |& [' \9 I( H: g- ~: W
PUBLICppow102 i- N1 F# n+ [5 W4 q6 t' h+ R, ]/ o
.CODE( p& G& h3 K- X6 d/ _% |
;DllEntryproc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD% R" k/ {- x7 |$ p9 }' s
;.if reason==DLL_PROCESS_ATTACH
: X$ k0 K. F7 A' c# H4 H( q# Y+ G9 F;invoke MessageBox,NULL,addr LoadMsg,addr AppName,MB_OK8 ^+ N' q/ y3 x$ F6 z4 e/ @$ x
;.elseif reason==DLL_PROCESS_DETACH9 U, U* o. c$ P6 @# e$ j
;invoke MessageBox,NULL,addr UnloadMsg,addr AppName,MB_OK: L+ D" Y; _, b6 K3 T2 a
;.elseif reason==DLL_THREAD_ATTACH
' m$ ^7 m- y& e;invoke MessageBox,NULL,addr ThreadCreated,addr AppName,MB_OK
$ I* d- b. L) d: S% D4 X" y;.else ; DLL_THREAD_DETACH6 e q- S7 D1 Y+ o
;invoke MessageBox,NULL,addr ThreadDestroyed,addr AppName,MB_OK+ u* D, A1 B& |: {6 W
;.endif! r' v X1 u/ D/ J. C! }* R
;mov eax,TRUE
c# b ?, W; n$ O2 S( T;ret
8 f0 n8 w, E v3 ^;DllEntryEndp3 n4 d$ K0 d' s0 Q" d$ |3 b
;FUNCTION _Ppow10( double val, double pow: ) : Extended;
. q D+ q. o/ u;_TEXTSEGMENT WORD PUBLIC 'CODE'9 S7 F: ~$ _6 B( j# F4 N
;ppow10 PROC,aVal:PTR REAL8, bVal:PTR REAL8
2 z8 g" a# V8 o$ w. z' X;ppow10 PROC,aVal:* Qword, bVal:Qword5 D, N) }6 T3 f6 R4 W- Y
ppow10PROC near L* t' l! b$ ^6 c6 I" y% E/ ~
XUEQU 8 ; for eip & ebp / B; R& k' p! n" D5 {( }% l+ K% @6 `
XDEQU 0 ; for edi, esi, ebx, ecx, edx$ l, @7 B( J4 G- N0 C: f* J
fp_powerEQU QWORD PTR [ebp+XU+8]% w1 ]$ x) E9 v1 j1 _ v) J
fp_valEQU QWORD PTR [ebp+XU] 8 O% C/ q/ o% U" h0 t7 F, s
valEQU QWORD PTR [eBP-XD-8] ; USE STACK& `: U5 U3 U3 S- [ q
powerEQU QWORD PTR [eBP-XD-16] ; USE STACK' X0 d' x9 M4 Y% @ g
pow10EQU QWORD PTR [eBP-XD-24] ; USE STACK/ E5 E9 B' R; l7 u4 X7 f
FPower10:, Q% [1 f ~: \& n" p
pushebp
" y& C3 g3 y: U9 q$ F) Imovebp,esp A6 w) M6 h' L. C' q% U. D
;push edi" e$ _6 u- D5 o6 ~
;push esi
1 C& A" ^6 N# Z K& R1 B;push eax
- d) W7 z3 w7 _/ ~) R! g4 ~;push edx
& |8 x5 z8 k3 u, osubesp,24
. z$ ~: C- c Q8 t8 z/ L, [FINIT
8 d: C5 E, {! [9 k+ _3 z7 U& Wfldz, ^' V/ M: p$ g
fstval
7 I) Z" n$ v1 b5 o m& y0 l2 `- zfstpower
0 i& i: [, K) e2 v1 y* Pfstppow10
- c; l6 Q. Q2 s7 q. E, P( l5 @" L' Y& U MOV EAX,8 MOV EDX,8; fldpi4 s) v/ i* B& A% S" `& r1 W# z
fld fp_val ;st(0)=val; fld aVal;st(0)=val5 i1 P" u. G& ]
fstval. I: d# Z# w2 o# E. Y+ |4 a
;fld Arg2 ;st(0)=power
. K2 r1 I" C; q8 Y;fstp power
' [, q7 d, Z& r5 C;fld val ;st(0)=val- s3 J# N7 p2 P. U1 ` R
;fmul val ;st(0)=val*val( s6 E1 G7 x6 r1 X7 Y7 o! u6 |
;fmul val ;st(0)=val*va*val1 i* L8 m5 z4 Q! x8 F+ P9 `
;fadd st,st(0)0 N' ? Q: e/ X+ M2 q# n
;fmul qword ptr [ebp+16] ;st(0)=power( ]% |" S+ O6 a6 \
;fadd st,st(0) F6 \% \, n/ |+ ?4 k1 O
;fwait ^2 `, |- _% Q2 L$ `/ z# v$ C) l
addesp,248 ~2 C. t' F4 d- h# `1 n( N
;pop edx
* a* h% D* J8 T* d, x9 i4 K1 p;pop eax# _* m }& ?( B/ V) S3 i1 u# f8 F
;pop esi; j) F1 J# z0 }1 f ]
;pop edi8 s/ U) v7 @5 p- `
movesp,ebp
6 }4 a* v1 C% h, w- c# z$ \popebp
0 U) C7 u# P; y0 A: k* h;leave ; @@@@@@ important don't use leave in vc++ 2010
' V7 W2 z8 K& c5 sRET;return value = st(0)
& {6 G( h4 P3 W0 L, P: Hppow10ENDP5 m& x9 d6 t0 g: H7 [ W5 ] k
;_TEXTENDS
; K D5 G" K1 D' EEND
! e0 g; ]- Y7 |( |9 H6 U;END DllEntry |