//////////////////////////////////////////////////////////foxfunc.cpp& ~) l i C; [6 \" {. w. z
( L$ \% D9 i T, M//FoxFunc.cpp : Defines the entry point for the DLL application.- o" V8 Y6 W4 U5 N |$ ?! j
//
8 N/ v4 Y n; L- `' ^$ e' s; W#include<string.h>
' a! S$ E9 D& Z#include<stdio.h>; c/ ?. Z, l2 D9 c4 ]: e7 a" c
#include<io.h>
+ B2 B( [* ]9 {4 E. B' C#include<math.h>' K) {" z% A0 {
#include<iostream>
3 V7 A% {* D4 b" I* I& L0 H#include"stdafx.h"
6 @" O V* s4 H5 g: D, Q- }' L#include"FoxFunc.h": o% C6 j" s9 ?1 J% ` v
usingnamespace std;
& d8 o% F8 O9 E" WBOOLAPIENTRY DllMain( HANDLE hModule,
/ C! G2 G- N' [! ?2 SDWORDul_reason_for_call, ! _* u( r& n2 t$ z3 ]
LPVOIDlpReserved
: v: v4 R. U7 }). ^2 L; h9 I6 Y% g( K7 B
{% j% ~ A. g5 E; T
switch(ul_reason_for_call)
1 V+ d# A: S ~+ Y3 A: X{
" G: E! v( r) QcaseDLL_PROCESS_ATTACH:
o/ `: e3 S r; H$ gcaseDLL_THREAD_ATTACH:
2 R4 {' Z$ W/ J0 t) BcaseDLL_THREAD_DETACH:
9 x5 z* _+ J E; Y, v# dcaseDLL_PROCESS_DETACH: d4 W0 i- k& H
break;
: [4 h- A. I# S% a( F8 m! ?. S/ c}
' F6 Y( _1 O% L, G ~returnTRUE;
7 W7 o8 z4 g3 z5 ~2 Q6 ^8 u}
4 R9 `, \/ y9 e! V' ]//计算收盘价的均价,一个常数参数,表示计算周期1 A) I$ f6 V4 J
//调用方法:
' ^) K; m2 ^7 J7 k# Z0 S4 ^//"FOXFUNC@MYMACLOSE"(5)* l+ x$ d; X; @
/*2 Z9 l1 `* i( ~* R% h: g9 g
//extern "C" double __cdecl ppow10(double ctemp,doublelength); - - - > wrong, extern "C" is to declare pow10coming from a .dll or .lib
. S- g" {/ o5 v) ?- k//extern "C" double ppow10(double ctemp,double length); - - -> both are the same" ?- U; Y9 u' R P
*/
0 e% G# {0 {5 }& Q0 Dextern"C" double __cdecl ppow10(double ,double );
' H! v7 ~# P/ O! Z3 i0 b//double ppow10(double ,double ); 3 I9 L2 ]- x( t2 M4 L
//call pow10() by __cdecl% I( h5 H3 ?3 P/ C
//!!!!!!!! use "C" for Microsoft visual C++ compiler6 X$ _( u9 g, s6 @
//!!!!!!!! use "C" for Microsoft visual C++ compiler
# C; Q6 K1 @' S, @//!!!!!!!! use "C" for Microsoft visual C++ compiler/ X% p* e& G5 `- e
//!!!!!!!! use "C" for Microsoft visual C++ compiler
! f9 z1 o. a4 ~0 ]+ V# P//!!!!!!!! use "C" for Microsoft visual C++ compiler
6 B( L; E+ G: G7 o% M6 c7 u8 n__declspec(dllexport)int WINAPI MYMACLOSE(CALCINFO* pData)
3 _3 U% W6 ~8 G& Z5 D0 W" ?{
9 \/ m2 C! |2 b% A, i3 pif( // pData->m_pfParam1 && //参数1有效
5 b* A/ b4 l; T- i//pData->m_nParam1Start<0 && //参数1为常数
2 t& D2 l4 m! @. G+ ` t3 |% K//pData->m_pfParam2==NULL ) //仅有一个参数
' l/ Y4 E/ P) R8 ]' i) f/ g//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_pfParam41 l$ p( g' Z8 u+ H& w1 Z' w: e
//&& pData->m_pfParam5 && pData->m_pfParam6 &&pData->m_nParam1Start>=0 &&0 j7 ]' b; s( h# _0 E. a
//pData->m_pfParam7==NULL) s6 V8 }6 o& p9 N
//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_nParam1Start>=0 &&, ]% K3 _$ v# n
pData->m_pCalcParam[0].m_nParamStart>=0&& pData->m_pCalcParam[1].m_nParamStart>=0
$ ?6 m9 ]2 S1 J# t( |5 G&&pData->m_pCalcParam[2].m_nParamStart>=0)
7 J4 ]2 Y, S# t$ z [{8 M5 H5 K& e, M0 T
floatfParam = *pData->m_pfParam4; //pointer ,pData->m_pCalcParam[3].m_nParamStart >= 0
* }2 \) {; }# |intnPeriod = (int)fParam; //参数1" k" l/ S* }# \- n/ X1 I/ R" y( g" p) o
//const float* cpParam = pData->m_pfParam2; // cpParam = pointer to 1 l: F" w. X5 _
constfloat* cpParam2 =pData->m_pCalcParam[1].m_pfParam; // cpParam =pointer to ) G( R: Z& l+ `7 l8 p3 N/ I- U8 i6 U
constfloat* cpParam3 =pData->m_pCalcParam[2].m_pfParam; // cpParam =pointer to
& I# C. o" n5 C/ g3 \constfloat* cpParam4 =pData->m_pCalcParam[3].m_pfParam; // cpParam =pointer to
" A7 D: F. k2 W, e! L$ v6 |//const float* cpParam5 =pData->m_pCalcParam[4].m_pfParam; //cpParam = pointer to 0 ]+ c5 v% S" g
//in foxtraderoooq:"MYFUNC2010@MYMACLOSE"(c,c,c,6),colorffffff,linethick5;// cpParam5 =pData->m_pCalcParam[4].m_pfParam , H7 G% |3 z- u$ O; U
//pData->m_pCalcParam[5].m_fParam); //value* b% X0 n4 J' w* q3 E
//const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;
+ c V: t4 C G% Q0 i% {# q; X! P//const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;
% b, O- E6 ~+ @//const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;
$ N* w- ?2 ~# p& x* b//const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;1 z$ k7 g( w, v: y1 T$ ]
//const float* pValue5 = pData->m_pCalcParam[4].m_pfParam;! a+ D3 E8 }0 i/ h& E. Q. r. i4 I
if(nPeriod>0)
7 E7 \" Y" l* u. a4 d{
2 d0 H' u' `, k' N5 DfloatfTotal;
1 A3 D W6 o+ Y+ T& finti, j;
! E) i* x3 Q8 c- L7 vintndata = pData->m_nNumData;' P- T" ~5 ~) v3 O0 f
//float yy[5000][1];
$ q. ~2 U! O) u0 [/ ]+ Dfor( i = nPeriod-1; i < pData->m_nNumData; i++)//计算nPeriod周期的均线,数据从nPeriod-1开始有效
: ^6 c, b) V i% B9 S0 T{
( L( L, m1 J" B; v3 \, V1 tfTotal= 0.0f;! D; B$ q* _# x) ]
doublelngth=5.0; r2 h7 b1 E {) v* q& E3 o
doublectemp=4.0;
. r( W% |: f- L! }7 T! `0 @//float yy1[5000][1];2 A5 D( D# e) u9 l; C. x
for( j = 0; j < nPeriod; j++ ) //累加
/ a) J; g( R' v' C3 g{. }8 s9 t& S' E! \) V
fTotal= pData->m_pData.m_fClose; // @@@@@@@ vc++ 2010 cl.exe 使pData->m_pData[i-j].m_fClose错误3 c1 P4 }, Q" ~* ?2 E9 q0 w
}# _+ ~) h6 K- _. c R& ~1 S, }% _
//pData->m_pResultBuf = fTotal*1.03; //平均
: ]0 M( ^* z( {fTotal= cpParam3;) e- W7 k8 q0 r* [" R
pData->m_pResultBuf= fTotal*1.03; //平均$ z- I/ P% Z* C( z7 H* t
//ctemp = (double) pData->m_pResultBuf; // double & - - - >overload a float value , double * - - - > overload a pointer todouble8 f- B! ^3 p4 X+ \. ^: l# S3 r, A- N' b! r8 B
//pData->m_pResultBuf= (float) ppow10(ctemp,lngth); // float &- - - > overload a float value
; ^: D; L6 w0 `( O* i- b# [- Y- n. OpData->m_pResultBuf=(float) ppow10( (double) pData->m_pResultBuf,lngth); // float &- - - > overload a float value, (float) = overload
6 B$ M+ w5 R5 I5 H/ g8 T$ e}
% v# j0 E- U' P! ]/ j5 NreturnnPeriod-1;
+ F- q# g8 u2 i4 x: g @, w}3 E, B9 t: S! x7 y6 V
}
4 `% z% W+ @8 k9 z( \. ^/ f+ Wreturn-1;' s+ E/ ?2 ^* D2 b
}4 M3 z: e, Y/ L {" b0 z: t% f
//计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期
. ?; \9 R, }. U6 F+ I4 r//调用方法:
; z( P$ f' f( R# u& N" e$ W/ Z6 D//"FOXFUNC@MYMAVAR"(CLOSE-OPEN,5)* ^" `' r7 o6 H' b6 g9 Q
__declspec(dllexport)int WINAPI MYMAVAR(CALCINFO* pData)4 \# W: T" P- d( K
{% K* A- j' }# G& s+ G' P: r5 _
if(pData->m_pfParam1&& pData->m_pfParam2 && //参数1,2有效$ f3 a; ~4 I p2 ~7 V; s
pData->m_nParam1Start>=0&& //参数1为序列数3 J) h$ i" L; {, r
pData->m_pfParam3==NULL)//有2个参数4 r) M* y6 u2 Z8 ?3 c
{
# _( X5 Y' @+ c/ i% }4 [+ Econstfloat* pValue = pData->m_pfParam1; //参数12 ^4 @3 H: O. ]
intnFirst = pData->m_nParam1Start; //有效值起始位
6 {9 p+ g( Z9 C& m( }2 L5 v7 ofloatfParam = *pData->m_pfParam2; //参数2
3 D |8 m A4 O T7 L/ i* d; u! ointnPeriod = (int)fParam;
# j# v' H* N/ u4 pif(nFirst >= 0 && nPeriod > 0 )3 ], a3 S/ j3 g8 a0 d2 w
{5 F3 B& `6 p- s P; n
floatfTotal;
% M, _2 e/ _1 M1 Ginti, j;
& V$ y! F5 Z) ?' @2 ^0 w6 Kfor( i = nFirst+nPeriod-1; i < pData->m_nNumData; i++ )/ g% L, ?+ V' }/ h
{# j/ F8 d( L6 H: J' g
fTotal= 0.0f;
7 u. x! a4 m- y; [! hfor( j=0; j < nPeriod; j++ ) //累加
, T" a9 S; o8 Z2 T) F( PfTotal+= pValue[i-j];/ f% e# Q0 I+ p: U( m+ f4 k$ n: \$ ]
pData->m_pResultBuf= fTotal/nPeriod;//平均4 L( X! E: ~; R
}. g, t; z9 g1 D+ t
returnnFirst+nPeriod-1;) ~$ R4 k/ \5 t- ]- M9 [, p. Y
}+ N+ o G' J9 p, @' I0 v
}- A6 I- b j4 a6 t# b4 ]4 j& g
return-1;& {# b% j" N# |/ X5 \* `
} N7 d8 C1 _1 |* E1 F2 n8 J+ v) ]
//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数9 u; h4 l6 b0 ~* `+ ^3 @: x* R
/*7 u/ u5 F0 k, F$ W" d- D b7 a# F
调用方法:
, W1 e/ H2 g5 J1 p' e4 JMA1:=MA(CLOSE,3);& X. @+ k8 M6 A9 h4 |( B
MA2:=MA(CLOSE,6);
$ I h* h- Q% V3 ]+ oMA3:=MA(CLOSE,12);
. F0 ~1 f& u# _4 ~- Q) U9 O' @MA4:=MA(CLOSE,24);+ i; ]$ K( v; p }( v" Q
MYBBI:"FOXFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);2 M# j* L" a- r% L9 Q8 b
*/
- ^# h4 @+ h4 m. X; J. Y__declspec(dllexport)int WINAPI MYBBI(CALCINFO* pData)! N7 ~( M m, D: t$ s; H0 X
{+ f f- c, V! W7 H, ?- w7 q
if( pData->m_pCalcParam[0].m_nParamStart >= 0 &&8 ~$ f' s& L& r( j! g4 k% R9 g# b1 M
pData->m_pCalcParam[1].m_nParamStart>= 0 &&
0 \, P5 {3 [/ a; o. n/ A7 l5 npData->m_pCalcParam[2].m_nParamStart>= 0 &&
+ k9 g0 T) E/ G: QpData->m_pCalcParam[3].m_nParamStart>= 0 ) //4个序列都含有效数值 X9 @' F* g1 O
{
* X, u9 l' [7 q6 M//计算返回的序列的第一个有效值位置2 @1 W* C' u# {2 u/ w( O
intnFirst = pData->m_pCalcParam[2].m_nParamStart;//已知返回的序列的第一个有效值位置与第4个序列一致0 _4 l8 `4 c- u) K$ D
//若不知,则
/ H' O% J, ?- G( ]8 m/*2 V: }% M" ~1 O5 X/ p. J
intnFirst = pData->m_pCalcParam[0].m_nParamStart;+ o: q( l. L, K5 Y1 Z
if( nFirst < pData->m_pCalcParam[1].m_nParamStart ) + T/ v; E2 q* @( `0 K9 i1 B. Y
nFirst= pData->m_pCalcParam[1].m_nParamStart;
7 ?$ }- [* u# U) x. Z. bif( nFirst < pData->m_pCalcParam[2].m_nParamStart ) - r% \/ X- [0 X6 H1 H$ D- @
nFirst= pData->m_pCalcParam[2].m_nParamStart;/ q7 y! i X, l& S
if( nFirst < pData->m_pCalcParam[3].m_nParamStart )
6 T8 k. i6 h) V3 c& }+ wnFirst= pData->m_pCalcParam[3].m_nParamStart;; a. y0 h( \5 P1 a0 ]+ s
*/
% @3 K4 S5 U! h& P' cconstfloat* pValue1 = pData->m_pCalcParam[0].m_pfParam;
5 ?! Z6 L$ Z( V; Q- V: A9 Bconstfloat* pValue2 = pData->m_pCalcParam[1].m_pfParam;
! j0 S* n* A* A7 tconstfloat* pValue3 = pData->m_pCalcParam[2].m_pfParam;) ]; r5 }! }+ K$ a. }4 T
constfloat* pValue4 = pData->m_pCalcParam[3].m_pfParam;; L5 O% {7 `, o$ l8 |1 ?# _
constfloat* pValue5 = pData->m_pCalcParam[4].m_pfParam;) H2 G( w0 `7 n% u" ]6 a6 r* v0 l
constfloat* pValue6 = pData->m_pCalcParam[5].m_pfParam;
$ P# S# F: d0 p9 N2 b//const float* pValue1 = pData->m_pfParam1; X: }% r; Q" m2 Y
//const float* pValue2 = pData->m_pfParam2;
& g/ f. S+ y! g s6 Z2 R. D* n//const float* pValue3 = pData->m_pfParam3;) w; Y0 y& @1 S% v; \
//int nNum = (int)(*pData->m_pfParam4);//实际上该例中已知nNum=4,在此用于说明数值参数的用法; M; ^6 x5 t* ^8 O2 L" B4 b# ~4 u2 P
intnNum = (int)(pData->m_pCalcParam[6].m_fParam);//实际上该例中已知nNum=4,在此用于说明数值参数的用法! x8 z4 `8 y% y) @7 M( O
for(int i = nFirst; i < pData->m_nNumData; i++ )9 y3 X' V k' }' }( j
{9 S1 B$ z$ W9 ^
pData->m_pResultBuf= ! ^# s J) ]8 x0 i, g$ X" k2 R
//(pValue1 + pValue2 + pValue3 )/nNum;5 ?' p" U, `. k6 |
(pValue1+ pValue2 + pValue3 + pValue4+pValue5 + pValue6)/nNum;8 d) `. j' j" G* l* O# l W4 K+ s: ?
}
+ |5 c& l; i j8 ?! L% yreturnnFirst;
0 r' E0 g- q2 q3 A8 G6 N5 Y# ?7 N}
( k) }" `& a; u6 S& ^4 u: [9 Yreturn-1;7 j) h7 k* l% h( f# j4 w+ o
}- D9 a, s7 W3 p1 Z0 J
6 X, X: v9 _8 J: |+ ~/ R' E0 p
/ N3 l0 i; Z B% D0 E3 n z
$ [. C# A$ C1 ]6 V9 V' @* L+ i" S//////////////////////////////////////////////////////////////pow10.asm; M: a/ \+ x( U! G% C4 Z" m5 {, p
;*******************************************************" O0 r3 f2 ?0 }& l: G9 {3 i1 b. R
;* *$ q3 j* ]+ S* i2 t( k. t% Y* J
;* Delphi Run Library *3 i6 O! E$ w# ^) G- J
;* *
8 t: T* O5 z, n* l6 t;* Copyright (c) 1996,98 Inprise Corporation *
5 G/ q- [) q; R6 f: ^& ^' x# C7 Y$ n;*--------------------------------------------------------------------------
; k$ _# A4 Z4 e! c5 a3 F;* To compile "tasm32 /ml pow10.asm" *2 Z- I0 W! R k9 d \5 x& U
;*--------------------------------------------------------------------------
1 y& N& g1 V' S r% k;*******************************************************
! P- U5 V0 s1 [2 S8 h1 n7 O.386# d# g# r# {: q; k/ k3 w" N
;.MODEL flat,c (error must be in segement block must have segment
# h: N& y6 f, d8 L' ^' h5 o; b6 K;!!!!!11 important if ',c' is not used , must use 'public _ppow10, and'_ppow10 proc'
/ Z o7 ~2 k4 B0 ?. J# d3 h; N; [;!!!!!11 important if .MODEL flat,c is not used , must use ;_TEXTSEGMENT WORD PUBLIC6 K7 i! h2 h& |5 n
;'CODE'..._TEXT ENDS and must use 'public _ppow10 and '_ppow10 proc'2 T% W$ @9 N' i, x2 N$ m* a! Y
.MODELflat,c ; just use .code, no need for segment,!!!!!11 important if',c' is used , must use 'public ppow10, and 'ppow10 proc'* z0 z0 |/ o2 r) n5 N& U) \
;ppow10 PROTO,aVal:PTR REAL8, bVal:PTR REAL8
" i3 T# e# q1 E* x: x;includeE:\Vsource\masm32\INCLUDE\windows.inc
" r' x* R. e8 |4 Z) s8 \: V;includeE:\Vsource\masm32\INCLUDE\user32.inc4 d2 R7 R/ o B) @
;includeE:\Vsource\masm32\INCLUDE\kernel32.inc
: ?! ]! r- E' o$ UPUBLICppow10
2 a* k% R! j- j7 y.CODE
$ e- K) D! c9 ?0 L5 n# A;DllEntryproc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD
/ \ q5 }, P% Q1 G( s/ i7 p/ y6 M;.if reason==DLL_PROCESS_ATTACH- @4 D5 D# Y" O* P7 E4 `$ s7 R
;invoke MessageBox,NULL,addr LoadMsg,addr AppName,MB_OK
1 t! n7 P1 E: N;.elseif reason==DLL_PROCESS_DETACH3 ~; C0 f! y. x6 `
;invoke MessageBox,NULL,addr UnloadMsg,addr AppName,MB_OK
; I, R7 h, I3 `7 D3 ~;.elseif reason==DLL_THREAD_ATTACH7 D$ M' |2 I5 T3 r
;invoke MessageBox,NULL,addr ThreadCreated,addr AppName,MB_OK4 c; m: M, p, u2 \# v* ?) `4 @2 D0 T) f
;.else ; DLL_THREAD_DETACH
# _+ q: I/ m: o- @9 f;invoke MessageBox,NULL,addr ThreadDestroyed,addr AppName,MB_OK: R) M9 G+ Q+ v3 w' X+ g
;.endif
, s+ ^" L! J- D;mov eax,TRUE1 I/ O7 R- ]; T! W q- f+ t# [
;ret% S7 Q$ x. g! M& [
;DllEntryEndp1 O- d/ C7 z/ E1 n% u0 A
;FUNCTION _Ppow10( double val, double pow: ) : Extended;+ g; U- ?1 R) V4 C7 w
;_TEXTSEGMENT WORD PUBLIC 'CODE'
3 K! P8 x: D" U' y;ppow10 PROC,aVal:PTR REAL8, bVal:PTR REAL8( N. F/ d7 Q9 k5 }$ ~, I3 P" U% G$ f
;ppow10 PROC,aVal:* Qword, bVal:Qword8 ], F( @* r: l/ [: _7 j
ppow10PROC near
. R3 ^: B$ m4 a' L5 G9 wXUEQU 8 ; for eip & ebp
( _0 o% a7 s% {4 FXDEQU 0 ; for edi, esi, ebx, ecx, edx
- k6 A4 Q+ U, J4 O" Hfp_powerEQU QWORD PTR [ebp+XU+8]
1 \' l* g8 H$ Qfp_valEQU QWORD PTR [ebp+XU] ! n5 ?6 w; Y7 `
valEQU QWORD PTR [eBP-XD-8] ; USE STACK
& W3 _; S* \; }- HpowerEQU QWORD PTR [eBP-XD-16] ; USE STACK. M) r4 y2 Z* c5 F) W- \
pow10EQU QWORD PTR [eBP-XD-24] ; USE STACK7 U$ A9 N- P$ h
FPower10:4 x! z' z5 j/ l% k* P: a9 K
pushebp
% _1 K" m% e% {/ Z/ vmovebp,esp p3 o c0 q9 Z, G
;push edi
# g' m( T$ B( ?& r* w7 X6 ?' E;push esi
) O) v, J) v! w' N;push eax
! O6 }1 m- `: s9 P) G;push edx& _$ L4 U- G- K; R! |9 a
subesp,24
! O- k& G4 ~$ N+ [7 z. M bFINIT- r; }5 J6 J; n; j A6 B9 \
fldz
7 K4 r% l/ K Ifstval
. Q/ r5 f& u) u( o% u- P' Hfstpower
! b! U) a: x' `7 xfstppow10* e4 F: v0 e9 @4 w
MOV EAX,8 MOV EDX,8; fldpi
r! o9 t {# i% c- Z v/ ?; b" | fld fp_val ;st(0)=val; fld aVal;st(0)=val
0 x' e9 o1 U6 h4 G# B1 Afstval
4 E: n' E, ?) W/ X' a;fld Arg2 ;st(0)=power
) K( _, Z) O4 P7 X;fstp power
! ^% W6 `2 v% e& A: B: ~* @' L0 E;fld val ;st(0)=val0 u. g$ J$ N8 y* ~5 _/ E/ y- Z
;fmul val ;st(0)=val*val
; ~1 y$ W8 y B- i8 r# g;fmul val ;st(0)=val*va*val
, c4 W2 u; I- K+ F;fadd st,st(0)3 U$ t6 \* _ q/ `
;fmul qword ptr [ebp+16] ;st(0)=power
$ O+ K# j: ]' w1 i0 V s;fadd st,st(0)- W' I% H6 D% q: r, m* K; t& U
;fwait
. l* `( Q4 {3 b; J( Vaddesp,24
8 u1 H) w( n# z( k: g;pop edx3 F+ G$ o3 \9 T& v; M- S/ F! e
;pop eax7 c4 Y+ z# D7 o5 {
;pop esi' y2 `0 {6 d( O% m1 {3 l
;pop edi/ D0 J. l: W$ L/ l& d
movesp,ebp
7 }, e4 w! z; p) _0 Gpopebp4 y' [: B# a. ?. R! E, l. R
;leave ; @@@@@@ important don't use leave in vc++ 2010. W2 v0 Y8 W% P
RET;return value = st(0)* g4 d8 c7 Y6 ^; A, f
ppow10ENDP8 R! n( T7 N# i& i
;_TEXTENDS
% T2 k2 v, {0 ?END5 {& @, U8 J% `' a/ L
;END DllEntry |