//////////////////////////////////////////////////////////foxfunc.cpp
6 J3 @6 b5 F4 O; `, I7 g. z
1 D' h- ]1 m6 G2 _//FoxFunc.cpp : Defines the entry point for the DLL application.
6 \; j: d. e! @5 M" g) D2 e3 ]//
% |. x8 }8 {# }. h0 N#include<string.h>/ I' P" i% `9 D8 ^5 B+ o
#include<stdio.h>
) V' n9 Z/ G5 Q; a9 g#include<io.h>
' x, i, ^7 |; j#include<math.h>( {0 y+ N- e c4 R3 g8 ^% X& a# v) a
#include<iostream>
# S: @8 N9 d( c# q; k#include"stdafx.h"
7 n k1 {+ \" M1 {0 u& |) A#include"FoxFunc.h"4 _/ z# p( o/ Q& p* r
usingnamespace std;
. T" w( | U" o% D- j$ {% \; F! eBOOLAPIENTRY DllMain( HANDLE hModule,
1 V* G# s+ a2 z' P% o0 Q0 ?, n6 _DWORDul_reason_for_call,
2 O8 z% @0 j9 Q/ ~& oLPVOIDlpReserved+ _, r* b6 _& p4 C+ i5 ?) V: r
)
0 _' p+ o9 I; C' R5 R{
$ Q* A$ j* S& k; H2 ]2 V& Vswitch(ul_reason_for_call)% ^. m ^ K7 I$ I
{" l- i0 a ]! p0 Z
caseDLL_PROCESS_ATTACH:4 W3 u4 s8 v. p0 y9 m
caseDLL_THREAD_ATTACH:
* k$ l0 A: a0 o% x* T4 C& ecaseDLL_THREAD_DETACH:$ q: N7 P" ]' K! ?/ `8 _% h- G/ G8 K
caseDLL_PROCESS_DETACH:; K* Q: e$ y P$ N5 v5 {
break;
' S& F& R" X( ?+ w8 K. `}
6 d2 Y9 j; ]* F2 _returnTRUE;8 {* g. t; k, N* d
}
& l" q% T9 X% ]$ v//计算收盘价的均价,一个常数参数,表示计算周期
. i: @) P) t& Q. N; t6 t//调用方法:& w+ U- z; v; B
//"FOXFUNC@MYMACLOSE"(5)
7 J% I+ ~' [4 O* S/*
; d- l6 J4 l8 ~2 {1 R% N/ p//extern "C" double __cdecl ppow10(double ctemp,doublelength); - - - > wrong, extern "C" is to declare pow10coming from a .dll or .lib
+ Z$ B- E0 ]6 w6 m5 r//extern "C" double ppow10(double ctemp,double length); - - -> both are the same
) X# M$ y; M( u4 K) R*/: c; k5 Y7 g6 R3 Q
extern"C" double __cdecl ppow10(double ,double );# \& Z A& m! B' r" J5 }: t9 m3 k
//double ppow10(double ,double ); 8 p* E) J! r2 _. j: M
//call pow10() by __cdecl; T# H4 k7 D0 S) v8 X3 G; ]
//!!!!!!!! use "C" for Microsoft visual C++ compiler C- h* `: ^" M% s
//!!!!!!!! use "C" for Microsoft visual C++ compiler
* D) z; N7 V9 c! _7 F& M( o! \$ B//!!!!!!!! use "C" for Microsoft visual C++ compiler
0 s, d$ z* q/ c6 B' U//!!!!!!!! use "C" for Microsoft visual C++ compiler5 I. k9 j4 z- L' J# L/ |: u8 z; w
//!!!!!!!! use "C" for Microsoft visual C++ compiler7 O1 S b+ _1 D' _8 ^" o; Q6 D
__declspec(dllexport)int WINAPI MYMACLOSE(CALCINFO* pData)0 M8 f, ~1 L# S2 p$ L
{
, t: w6 k; g& u7 Wif( // pData->m_pfParam1 && //参数1有效8 P/ I z$ w+ e- K% f- n- T* h
//pData->m_nParam1Start<0 && //参数1为常数. K& P4 N; P2 h, {5 B5 q" R/ r
//pData->m_pfParam2==NULL ) //仅有一个参数
" a' f, w! \5 {/ S2 n7 m//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_pfParam4' z9 d t9 A, j* x- s
//&& pData->m_pfParam5 && pData->m_pfParam6 &&pData->m_nParam1Start>=0 &&# v: e1 J! ?; w; y4 v3 P% A r
//pData->m_pfParam7==NULL)
( D$ [0 O/ A" W( q" V//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_nParam1Start>=0 &&
7 x$ E( T0 X* N; n/ Y/ T z/ O2 @. E& xpData->m_pCalcParam[0].m_nParamStart>=0&& pData->m_pCalcParam[1].m_nParamStart>=0
$ d* U2 @; p' T( T. I, f1 s# R0 N E&&pData->m_pCalcParam[2].m_nParamStart>=0)
7 B- O0 x0 ?8 M+ w3 q& u. F{
% [. `4 y- M$ t Y5 ~* {( r) x+ G2 sfloatfParam = *pData->m_pfParam4; //pointer ,pData->m_pCalcParam[3].m_nParamStart >= 0& h) L) k9 o. @. |/ q) R' o
intnPeriod = (int)fParam; //参数1
6 q0 Y' |. k3 `6 I//const float* cpParam = pData->m_pfParam2; // cpParam = pointer to
" I& G5 p6 n! \' A/ e' qconstfloat* cpParam2 =pData->m_pCalcParam[1].m_pfParam; // cpParam =pointer to - ? T( O3 N& W6 p2 c/ W' h
constfloat* cpParam3 =pData->m_pCalcParam[2].m_pfParam; // cpParam =pointer to
2 S6 B: @# G0 r8 u) W3 xconstfloat* cpParam4 =pData->m_pCalcParam[3].m_pfParam; // cpParam =pointer to & }" t# J7 v: V; q8 E0 V
//const float* cpParam5 =pData->m_pCalcParam[4].m_pfParam; //cpParam = pointer to : W! D! M1 k3 H2 Y: o! ]0 ^
//in foxtraderoooq:"MYFUNC2010@MYMACLOSE"(c,c,c,6),colorffffff,linethick5;// cpParam5 =pData->m_pCalcParam[4].m_pfParam * e- J1 G$ k- Z/ Y/ D; f
//pData->m_pCalcParam[5].m_fParam); //value5 {- }& @0 Y8 q# I
//const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;
4 \3 ^2 S/ F& d8 B( D- Z//const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;
0 r8 s( ~/ V' o' K6 ~3 I2 i! _//const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;5 W5 |0 Y5 }) I* s! x. W, Q7 `
//const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;4 L& T/ t+ Y9 q9 F
//const float* pValue5 = pData->m_pCalcParam[4].m_pfParam;
3 M$ m6 F1 e6 V/ Q4 Gif(nPeriod>0)
5 a9 T7 K3 m0 a! I" b1 Q& Y3 Y{7 u6 U) {1 |4 Z* f; B9 {
floatfTotal;
- z8 u. I! ^0 E: e- q/ ?, k$ dinti, j;& j8 ~/ a. x, B m8 C L
intndata = pData->m_nNumData;
5 b2 l& _5 A- V' n* u& {//float yy[5000][1];2 S/ [8 c* g% d5 b
for( i = nPeriod-1; i < pData->m_nNumData; i++)//计算nPeriod周期的均线,数据从nPeriod-1开始有效* N2 a) x: _0 G' Z& g* x, w1 O, W
{' s5 l$ Y, ^3 O
fTotal= 0.0f;
- X( u7 e( `1 f- C+ tdoublelngth=5.0;
' z! N% G! w% N9 C; Cdoublectemp=4.0;/ k) H8 v: L) L8 M. r
//float yy1[5000][1];
`) S: ^; S+ }4 zfor( j = 0; j < nPeriod; j++ ) //累加2 e7 R. b* e$ d7 d1 `$ g @9 [
{9 ~7 n- v" F& t8 h! X# x
fTotal= pData->m_pData.m_fClose; // @@@@@@@ vc++ 2010 cl.exe 使pData->m_pData[i-j].m_fClose错误
# q9 A2 L, q+ C" j7 B8 s+ Q/ t}
# z, D* z1 T6 k4 O+ g' o//pData->m_pResultBuf = fTotal*1.03; //平均 q9 x% |& g5 G# R
fTotal= cpParam3;, f- l4 b$ V3 _+ V( o
pData->m_pResultBuf= fTotal*1.03; //平均* }8 X# c0 ] `0 ~
//ctemp = (double) pData->m_pResultBuf; // double & - - - >overload a float value , double * - - - > overload a pointer todouble4 N/ _# X& X2 E0 x8 i3 @
//pData->m_pResultBuf= (float) ppow10(ctemp,lngth); // float &- - - > overload a float value
+ W; L$ X8 A; M8 @' }3 [3 [" ipData->m_pResultBuf=(float) ppow10( (double) pData->m_pResultBuf,lngth); // float &- - - > overload a float value, (float) = overload( W3 e: ~" Z' S R1 H) y4 b0 }8 v
}
) U6 `% e% D! R" mreturnnPeriod-1;9 V) I% ~* r* `2 O3 D
}/ W& s! }1 h3 Q( a6 g
}5 I8 F0 f0 @- e3 c2 J c
return-1;
2 h( v; `' \7 P* b* E8 E}
1 k9 y* P+ e+ s1 A7 w3 ?//计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期
2 g' M' s/ ?: F [& j//调用方法:
1 a! x; G j j! n* w1 Y% b//"FOXFUNC@MYMAVAR"(CLOSE-OPEN,5)' Y( W1 H `. ]8 S( n3 J% X
__declspec(dllexport)int WINAPI MYMAVAR(CALCINFO* pData)
% d2 r: `2 j2 B$ s( G- U2 {( N{
3 J2 E! k* h) n Gif(pData->m_pfParam1&& pData->m_pfParam2 && //参数1,2有效; f5 D) q( @5 o- C( s9 m) w9 `
pData->m_nParam1Start>=0&& //参数1为序列数$ U) I/ q8 d Y% v& a2 I
pData->m_pfParam3==NULL)//有2个参数
6 J% H k' H5 y{
; ~2 j [5 b5 I# I+ E# X1 Econstfloat* pValue = pData->m_pfParam1; //参数1
; Z/ C; m/ N" F( i& L0 ?intnFirst = pData->m_nParam1Start; //有效值起始位* E! R( |. H( G4 u4 S: Z+ D4 t
floatfParam = *pData->m_pfParam2; //参数2
q& g4 I$ \. r8 aintnPeriod = (int)fParam;
: K* F n. h6 r% _( Uif(nFirst >= 0 && nPeriod > 0 )% D0 p) ~( L9 I$ d
{% Z; \) j9 S* @' f6 K4 l% j
floatfTotal;8 L+ m, x3 R5 y {) J% U
inti, j;
* Y- ^; [! n& o xfor( i = nFirst+nPeriod-1; i < pData->m_nNumData; i++ ); `0 N: V+ c% a+ K; }$ G
{6 N% i( l/ p/ z3 T) d7 `/ b
fTotal= 0.0f;
$ b3 p w1 g% g# }for( j=0; j < nPeriod; j++ ) //累加
6 p5 T3 w8 X( K0 W0 `- H, nfTotal+= pValue[i-j];8 L- U; c" E; X+ s. C. o. z
pData->m_pResultBuf= fTotal/nPeriod;//平均
$ Z+ R: q5 Z8 K$ ]: ^. W}
! G @( _0 p3 C! ^( l* _returnnFirst+nPeriod-1;$ I* `. F t4 ]( l% e5 j
}( a' ~; H/ p3 f; L* n- H8 x
}
' ^2 {. I( w: g7 [! Q7 ^7 [8 {( l8 Wreturn-1;- o- ^; B9 W! w$ Z1 T% g
}
5 c5 E |! `( }//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数( {) a0 G) V, j. i# |# |9 C' f: _ D
/*
) r6 |7 \" _7 S0 E6 F$ L# v调用方法:' |4 H0 P" V' ?) R! n
MA1:=MA(CLOSE,3);
r8 [3 f3 z) V3 h2 X7 nMA2:=MA(CLOSE,6);. P, }- `' h$ ~! I. m
MA3:=MA(CLOSE,12);3 g+ v, F7 X! z" K6 _
MA4:=MA(CLOSE,24);7 I% c4 I; ~% S. N; j
MYBBI:"FOXFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
8 e7 d1 n9 P9 D*/
& M9 F9 e6 y3 s__declspec(dllexport)int WINAPI MYBBI(CALCINFO* pData)
3 y4 O$ o0 ^/ v{
& ? `" a3 F. Z' Z* A9 _& uif( pData->m_pCalcParam[0].m_nParamStart >= 0 &&
7 ^& v, S) x3 V/ opData->m_pCalcParam[1].m_nParamStart>= 0 &&, a% e2 w. c* P8 [+ y" j3 s
pData->m_pCalcParam[2].m_nParamStart>= 0 &&
* G8 y" U ~ w3 u/ c$ o4 s1 F* YpData->m_pCalcParam[3].m_nParamStart>= 0 ) //4个序列都含有效数值
9 A- f5 E3 C3 Q. T$ R2 c{
, F. `% P. w8 u& X) }/ _* ~4 W4 g//计算返回的序列的第一个有效值位置7 p% E6 u8 C* k' f
intnFirst = pData->m_pCalcParam[2].m_nParamStart;//已知返回的序列的第一个有效值位置与第4个序列一致
" t! Q! X7 W' l7 G4 c//若不知,则8 M( b; A1 R6 P( M! O) _ Y; H
/*
( C' H. @$ X. b7 M! D* X JintnFirst = pData->m_pCalcParam[0].m_nParamStart;+ K4 A, Q! o: s; v
if( nFirst < pData->m_pCalcParam[1].m_nParamStart )
+ w7 }4 L! p/ `, onFirst= pData->m_pCalcParam[1].m_nParamStart;+ l( W6 ?5 q ^! ^7 x2 j X r8 m
if( nFirst < pData->m_pCalcParam[2].m_nParamStart ) + _" [, t$ P: \: o# V' {
nFirst= pData->m_pCalcParam[2].m_nParamStart;
& m) a5 i8 `7 `7 Q6 Y% zif( nFirst < pData->m_pCalcParam[3].m_nParamStart ) & u0 \" p" G/ j" N* }& j, i
nFirst= pData->m_pCalcParam[3].m_nParamStart;2 D8 ~- m7 G- v3 \5 G
*/0 D* I! x1 H/ t3 w9 x0 i
constfloat* pValue1 = pData->m_pCalcParam[0].m_pfParam;) ~( {5 t! ?! X2 A) H6 Q
constfloat* pValue2 = pData->m_pCalcParam[1].m_pfParam;
( N; p5 m% z+ U Kconstfloat* pValue3 = pData->m_pCalcParam[2].m_pfParam;
; S4 }/ T& `, j" A: e% G9 |$ S( yconstfloat* pValue4 = pData->m_pCalcParam[3].m_pfParam;( p5 f; \7 }) T; L7 ?# |# C Q6 t
constfloat* pValue5 = pData->m_pCalcParam[4].m_pfParam;
9 S1 x- d( v( I8 s0 e" O- Jconstfloat* pValue6 = pData->m_pCalcParam[5].m_pfParam;
1 M, n% L: q/ d/ ^//const float* pValue1 = pData->m_pfParam1;! R0 {& N' Q0 G; c8 R
//const float* pValue2 = pData->m_pfParam2;! D- F( \- D4 w, c E$ I1 e
//const float* pValue3 = pData->m_pfParam3;
$ \2 ` K$ k H5 S//int nNum = (int)(*pData->m_pfParam4);//实际上该例中已知nNum=4,在此用于说明数值参数的用法
" D0 x, n5 d% j" x% U4 n q( P2 jintnNum = (int)(pData->m_pCalcParam[6].m_fParam);//实际上该例中已知nNum=4,在此用于说明数值参数的用法
$ q$ v4 L: _/ hfor(int i = nFirst; i < pData->m_nNumData; i++ )* K" B0 U2 ~8 s- ~% b6 z
{
5 {. A! y) m1 |1 Z3 wpData->m_pResultBuf=
+ x! ~& v, L0 E' u- ~3 r5 d' T//(pValue1 + pValue2 + pValue3 )/nNum;6 W6 r# G1 o) C- [
(pValue1+ pValue2 + pValue3 + pValue4+pValue5 + pValue6)/nNum;
; `, y- g0 l9 [: f% i/ @( a} h7 Z4 |9 e2 I4 W: m* z; D0 N
returnnFirst;
4 n' W! j" F% b: m5 @}
: r+ m$ z2 g$ x3 b m4 l4 greturn-1;, K n: q! F# H5 d& k$ U: w! W
}
- |! J U3 n4 C! T
* E& c6 a; z! V5 n" s
7 r8 O9 k: J% u& ]7 @5 y$ w5 T$ }
& i2 ]* O3 E! h: @! l//////////////////////////////////////////////////////////////pow10.asm
% R* d5 B" A. V5 F5 ?;*******************************************************
% A5 ^& }: Y" Y" g;* *
( k% c0 F4 p) j. S: w# ~0 j/ p;* Delphi Run Library *
h+ @1 a! o# a. };* *. c9 K) X2 {3 h7 }: J
;* Copyright (c) 1996,98 Inprise Corporation *2 v, g+ T/ S; z
;*--------------------------------------------------------------------------0 D' p: H9 a% x4 A# a' P& n# D
;* To compile "tasm32 /ml pow10.asm" *
O. ]' c% Y. n0 B# {( t2 c;*--------------------------------------------------------------------------9 U& Y! W4 W0 C5 F# ^) Z8 E
;*******************************************************
" A% W: w1 R# M0 D3 c.386* z x7 f7 K/ A/ p
;.MODEL flat,c (error must be in segement block must have segment2 ~# U" L- j+ b+ {9 [
;!!!!!11 important if ',c' is not used , must use 'public _ppow10, and'_ppow10 proc'
, Q( U% G9 K/ r1 u2 I# V;!!!!!11 important if .MODEL flat,c is not used , must use ;_TEXTSEGMENT WORD PUBLIC
% ?* V) n) d% @8 p% x;'CODE'..._TEXT ENDS and must use 'public _ppow10 and '_ppow10 proc'8 j; V A# c. ?3 I8 z
.MODELflat,c ; just use .code, no need for segment,!!!!!11 important if',c' is used , must use 'public ppow10, and 'ppow10 proc'
: d! f$ e c n2 r m1 S;ppow10 PROTO,aVal:PTR REAL8, bVal:PTR REAL8 S/ f* ~& V' R5 Y; J, P. e
;includeE:\Vsource\masm32\INCLUDE\windows.inc
* C& u `; N) q6 f) g& B;includeE:\Vsource\masm32\INCLUDE\user32.inc2 B/ @4 V$ Q% g! _$ @8 r6 ~
;includeE:\Vsource\masm32\INCLUDE\kernel32.inc% x) N5 o8 `) Y# j- z
PUBLICppow10* W: j8 F; Z& Z: Q7 s
.CODE
8 v' Y6 @- V& _;DllEntryproc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD, ^: {2 e d: x, j
;.if reason==DLL_PROCESS_ATTACH! [0 K. E/ @% f8 J1 q7 U0 J
;invoke MessageBox,NULL,addr LoadMsg,addr AppName,MB_OK
/ g b6 ^3 }. G+ F# I. B;.elseif reason==DLL_PROCESS_DETACH5 r6 p4 B. a% ^1 w
;invoke MessageBox,NULL,addr UnloadMsg,addr AppName,MB_OK: r- I3 _8 s: Y6 p
;.elseif reason==DLL_THREAD_ATTACH
( c# n/ l( D! x7 z;invoke MessageBox,NULL,addr ThreadCreated,addr AppName,MB_OK
3 y% o5 |( f" ^& l% c+ l( Q;.else ; DLL_THREAD_DETACH6 i' A' y2 L' d( U
;invoke MessageBox,NULL,addr ThreadDestroyed,addr AppName,MB_OK
_! E9 n, d% A9 s0 L2 ` N- n;.endif
0 I4 w8 y1 v1 S& P;mov eax,TRUE
: A; q/ z' s u;ret3 v3 n4 O% f- D, a6 n G
;DllEntryEndp% a# c; S# k+ U2 H
;FUNCTION _Ppow10( double val, double pow: ) : Extended;9 {+ a% J, X7 ?* r% A% h5 l0 M
;_TEXTSEGMENT WORD PUBLIC 'CODE'
: @" i* U9 S* [4 P2 t: v;ppow10 PROC,aVal:PTR REAL8, bVal:PTR REAL8
5 ]. ^! m1 I+ @3 B% K;ppow10 PROC,aVal:* Qword, bVal:Qword9 m7 c3 U. m9 Z
ppow10PROC near6 \1 [7 T) S' L' U7 W* \4 ?7 d
XUEQU 8 ; for eip & ebp ! p+ P/ F0 z& ^
XDEQU 0 ; for edi, esi, ebx, ecx, edx* z3 y4 Y: ^4 v- b, ~' E' f
fp_powerEQU QWORD PTR [ebp+XU+8]; W o; d. n% W. B9 g) L& A
fp_valEQU QWORD PTR [ebp+XU] ! e* i% b& |" Q4 m q4 Y- k# z- l
valEQU QWORD PTR [eBP-XD-8] ; USE STACK% I) n% m1 B- P( L- j8 a3 }2 J4 u
powerEQU QWORD PTR [eBP-XD-16] ; USE STACK! `" `: Y: w: r+ `
pow10EQU QWORD PTR [eBP-XD-24] ; USE STACK! d& Z. f! `) N. [) b' {
FPower10:+ @. t; O- U6 e% M1 z
pushebp) P4 q- F' s7 Z7 u
movebp,esp
& i. p/ H- [+ R5 Z;push edi
2 Y2 J$ s" ~2 X1 d9 p;push esi
( f. ~7 J( H3 ]+ f( A( [;push eax# T m- v/ k8 }1 b t( f+ Z$ R/ a
;push edx h! O' I0 V9 ?
subesp,24" B9 w$ T9 s. Z6 y3 z6 q- u
FINIT) |$ E3 d0 l1 g% T: h( H7 U3 I
fldz
# L" l4 B9 G' R' k2 dfstval, A. }3 H, D9 }$ o" e% h$ i) T1 \4 v. w
fstpower
% d) w( W$ P* I: Lfstppow10( ] [5 p# o0 W9 w# \1 T/ ^
MOV EAX,8 MOV EDX,8; fldpi
4 M& W: R6 W: Z5 T" Y fld fp_val ;st(0)=val; fld aVal;st(0)=val
# q+ e& x- q; p+ F W* C+ g! R, o) Zfstval
4 Q! |6 h+ u, I2 A;fld Arg2 ;st(0)=power: b, ]5 U6 Q, E1 R9 Q& a6 t
;fstp power W" m) W2 J7 |8 J# z
;fld val ;st(0)=val. c. h; w5 n" q2 v" v
;fmul val ;st(0)=val*val
) b; Z- D6 |& Q, I' K/ U;fmul val ;st(0)=val*va*val
! y8 z5 G! I6 [6 _& b& Z) Y3 f' Q;fadd st,st(0), c4 |5 w: I, A0 t d
;fmul qword ptr [ebp+16] ;st(0)=power
, z2 e6 T9 b0 K$ u% O6 C+ Q2 m;fadd st,st(0)# l- f d/ D! r/ X9 L# |
;fwait* K; c" ^( M, N4 L
addesp,24
; q. i$ H; e) n! E6 v;pop edx- X0 Y" ? K0 E5 C/ H
;pop eax( ?5 Y M r7 E) ], I2 b0 l# C
;pop esi0 x& w A' G* n2 [4 e% W
;pop edi
3 R8 \& T- G" p7 |# h! \movesp,ebp
4 W3 l+ O3 `/ D* ?0 apopebp) R. q7 @/ B8 R8 T" u J2 A9 A6 O
;leave ; @@@@@@ important don't use leave in vc++ 2010: z" s& y4 U c
RET;return value = st(0)0 ^2 f8 i; K' Y7 Y$ }* Q& l
ppow10ENDP
0 j. a- @, C, g: V;_TEXTENDS9 Q4 l. c' s- j+ j$ w' J, r
END
8 A# d: m# u9 Y8 ?;END DllEntry |