//////////////////////////////////////////////////////////foxfunc.cpp
* q5 |3 i, p s, Q9 U
5 y5 b$ q" ~1 g* t) S//FoxFunc.cpp : Defines the entry point for the DLL application.0 f2 h$ c3 w; E% _5 d x3 {/ e6 i
//
3 Y' {( v" m3 z#include<string.h>9 ?& ~! u4 j, i2 A+ d
#include<stdio.h>3 `6 t) f+ o! c U9 n! l; ~, s
#include<io.h>) k& {1 E: C7 }* T" ~4 M& j7 M8 [
#include<math.h>% v; S4 k1 W+ m$ q3 t8 Q2 Z: ?' e
#include<iostream>7 ?/ I' T) j' U
#include"stdafx.h"
( G- d4 m: B- B: y#include"FoxFunc.h"6 y. m ^) n z4 w6 `9 C. N4 U) P
usingnamespace std;# U; W6 P+ H, F
BOOLAPIENTRY DllMain( HANDLE hModule, 8 ]+ J3 R8 B1 d# H2 b* X
DWORDul_reason_for_call, 8 Y8 c, B" g9 H0 g# T
LPVOIDlpReserved0 E0 c# T/ m/ w2 W8 X! x
): J7 @3 e" J7 t9 d7 `+ X/ D
{
8 v0 @. N) u0 A. s4 C- f- _' tswitch(ul_reason_for_call)# @& k+ ?, g& A4 m: R/ ~ y
{
6 r2 `* q, w3 I' p, w5 i$ R# |caseDLL_PROCESS_ATTACH:
9 ~7 ?+ c" a9 X f+ rcaseDLL_THREAD_ATTACH:
+ J7 I' h" |" `' o8 a) f# X7 XcaseDLL_THREAD_DETACH:9 F/ }* `. B' B0 c5 p1 Z
caseDLL_PROCESS_DETACH:5 A" F9 j8 p5 o' B, }9 W# Q
break;
- a1 f9 ~5 t8 s3 U1 o}
) a6 [% d8 J2 B7 j# ?/ xreturnTRUE;/ m- L( m; W* F) x1 n, W' z. n
}! C, r/ C3 c1 B: c+ L5 ?
//计算收盘价的均价,一个常数参数,表示计算周期
# ]) ]9 v6 e, X+ p2 C# J//调用方法:
6 Z' j& k7 |; y3 n0 @//"FOXFUNC@MYMACLOSE"(5)
' I7 w* a' O, y& f( v( `/*: \6 a) w) A" w! q# F
//extern "C" double __cdecl ppow10(double ctemp,doublelength); - - - > wrong, extern "C" is to declare pow10coming from a .dll or .lib. a# R+ |8 d# s( M
//extern "C" double ppow10(double ctemp,double length); - - -> both are the same
9 P7 @: C! ^/ u- J8 Q+ n*/
5 b; B) t+ D" \& L& d# E, yextern"C" double __cdecl ppow10(double ,double ); R! c# t" N. P% F* i
//double ppow10(double ,double ); 3 D: t8 M- v, B8 P; b
//call pow10() by __cdecl
) g, ~. I0 ]8 W/ s; k; Z% E3 \//!!!!!!!! use "C" for Microsoft visual C++ compiler, ^7 H7 v) p, w* U
//!!!!!!!! use "C" for Microsoft visual C++ compiler
& }$ [4 \* V4 M, v; f2 X5 c//!!!!!!!! use "C" for Microsoft visual C++ compiler
5 O* m4 g) W1 x, f//!!!!!!!! use "C" for Microsoft visual C++ compiler8 Y4 W" c1 ^: E0 Z A
//!!!!!!!! use "C" for Microsoft visual C++ compiler8 w: y9 B/ D' Z5 F" q! C# h B0 a
__declspec(dllexport)int WINAPI MYMACLOSE(CALCINFO* pData)) y: P1 H- G) [ I6 p$ O8 T
{
6 i# Q! u3 A3 t5 lif( // pData->m_pfParam1 && //参数1有效% [' ?5 _! E8 u
//pData->m_nParam1Start<0 && //参数1为常数
- m5 F) M9 x) \//pData->m_pfParam2==NULL ) //仅有一个参数
( L8 X: |" P Z0 L! N# `% ^% {, j//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_pfParam4
! A) P: i" s$ ~, ^//&& pData->m_pfParam5 && pData->m_pfParam6 &&pData->m_nParam1Start>=0 &&
Q( E0 j2 v1 K0 E) m+ p- k//pData->m_pfParam7==NULL)- N* |2 G8 n+ N. ~! l* X
//pData->m_pfParam1 && pData->m_pfParam2 &&pData->m_pfParam3 && pData->m_nParam1Start>=0 &&5 T. N. g0 [4 }/ P" i6 f
pData->m_pCalcParam[0].m_nParamStart>=0&& pData->m_pCalcParam[1].m_nParamStart>=07 g! r: v- A; g; j6 m& H
&&pData->m_pCalcParam[2].m_nParamStart>=0)
( E9 U; [ c2 h1 \7 t: F# I3 D{- r" a+ a0 J, [& l6 D# E
floatfParam = *pData->m_pfParam4; //pointer ,pData->m_pCalcParam[3].m_nParamStart >= 0
X! K; ?/ X9 m8 E% KintnPeriod = (int)fParam; //参数15 d% r/ X4 U, Y( \$ E$ Z
//const float* cpParam = pData->m_pfParam2; // cpParam = pointer to : C/ D1 ?+ J$ j; a
constfloat* cpParam2 =pData->m_pCalcParam[1].m_pfParam; // cpParam =pointer to 5 G: @# y$ n$ g. m3 {5 U
constfloat* cpParam3 =pData->m_pCalcParam[2].m_pfParam; // cpParam =pointer to 2 {" {8 p' f' ]
constfloat* cpParam4 =pData->m_pCalcParam[3].m_pfParam; // cpParam =pointer to
; T7 W9 D( s+ t9 `. _+ ~/ |" ~//const float* cpParam5 =pData->m_pCalcParam[4].m_pfParam; //cpParam = pointer to + |; ]: H1 D* Z/ H
//in foxtraderoooq:"MYFUNC2010@MYMACLOSE"(c,c,c,6),colorffffff,linethick5;// cpParam5 =pData->m_pCalcParam[4].m_pfParam
$ p7 _ v' G+ N* _//pData->m_pCalcParam[5].m_fParam); //value
2 J% ~+ ?6 A( }4 t+ P//const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;
+ e. q9 P: D( i/ a( S. B! k+ R5 p) s//const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;
1 O3 y q) O+ U: n d//const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;
( Q( W0 M$ ~3 `. |0 ^' a) {& U+ y; ]: ]//const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;
6 R" M2 A0 [4 x; B& N//const float* pValue5 = pData->m_pCalcParam[4].m_pfParam;, e5 H7 e' v( \& t9 |6 r
if(nPeriod>0)
% X% k, P6 ^0 a) r& Z( D2 L5 b" x{
+ w& E6 ^, f2 v2 SfloatfTotal;0 e( n% q) u0 y$ F' Q4 j; v
inti, j;
8 k8 }# E |) z; Yintndata = pData->m_nNumData;4 p2 i6 ?& e7 L. `# ?/ |8 f
//float yy[5000][1];' l) u7 o# J: V: f2 t. j$ y
for( i = nPeriod-1; i < pData->m_nNumData; i++)//计算nPeriod周期的均线,数据从nPeriod-1开始有效2 C. |. B; R- `$ e
{. u( O# A# _( m
fTotal= 0.0f;* F& M: E5 d, v& \
doublelngth=5.0;) o# I0 ]2 R1 e! |8 M' m: P
doublectemp=4.0;% i+ g% s. g5 Z r( v
//float yy1[5000][1];6 h& G# ~" x& _( _6 u/ A, f7 w( Y* N
for( j = 0; j < nPeriod; j++ ) //累加
9 z$ Q' Q6 R9 C" |, k5 g, X# j& D{- S8 s+ A% [2 _+ }+ |) e- [1 e
fTotal= pData->m_pData.m_fClose; // @@@@@@@ vc++ 2010 cl.exe 使pData->m_pData[i-j].m_fClose错误
0 O- G3 A! T$ U! h. ~) ], u}8 Z) J8 \+ J) L
//pData->m_pResultBuf = fTotal*1.03; //平均
0 p+ J3 v, Y3 f9 W2 x* @+ V2 g6 PfTotal= cpParam3;3 K8 B) ^0 E2 U: ?7 m7 b2 Z$ i4 ?
pData->m_pResultBuf= fTotal*1.03; //平均# o. A B# ^ F/ _0 c% O* t
//ctemp = (double) pData->m_pResultBuf; // double & - - - >overload a float value , double * - - - > overload a pointer todouble
! h) a/ O; I% G6 M* x8 c- z' I l6 l//pData->m_pResultBuf= (float) ppow10(ctemp,lngth); // float &- - - > overload a float value/ L( y6 C" x2 }9 ^. q8 u8 A( B
pData->m_pResultBuf=(float) ppow10( (double) pData->m_pResultBuf,lngth); // float &- - - > overload a float value, (float) = overload
. i5 U% n, z% v% b+ V& P9 b; {. F8 f}% e, V0 B0 x$ x5 ]
returnnPeriod-1;
}9 F7 v8 q8 @3 g: l! i}0 }) S @+ X P: t
}- B, i' C8 W8 T4 n2 E% U o0 P
return-1;0 X- _; l& H- e7 D1 x
}2 g3 |2 ]. p* C8 X' E1 w
//计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期
' r4 Q N% _9 t, c* F3 a//调用方法:
* k8 K Q8 t% F- {//"FOXFUNC@MYMAVAR"(CLOSE-OPEN,5)' r3 ?3 E6 p1 h. Q' T. R
__declspec(dllexport)int WINAPI MYMAVAR(CALCINFO* pData)
0 ~; a1 n. p; j v, T8 E{
" G& J' Q$ ?: v3 [if(pData->m_pfParam1&& pData->m_pfParam2 && //参数1,2有效( [; J0 S% k; v' b- T5 U
pData->m_nParam1Start>=0&& //参数1为序列数( \+ ]3 G( A3 m# [- B. l
pData->m_pfParam3==NULL)//有2个参数
1 B" s% T' T8 v; X+ S0 [' b{
# W3 h; e0 q. i2 G3 U4 |constfloat* pValue = pData->m_pfParam1; //参数1" q& u4 v' Q' d% s, ?
intnFirst = pData->m_nParam1Start; //有效值起始位 |/ k9 _! I, B- H$ ^
floatfParam = *pData->m_pfParam2; //参数24 g( V/ j+ a! U4 d/ b( Q" R. g' z6 g: g
intnPeriod = (int)fParam;
: S' j5 E% Z7 ~- Y/ s: Lif(nFirst >= 0 && nPeriod > 0 )
' l# c! r: H: Q5 r3 a{/ z n1 v6 T A) r; O
floatfTotal;5 H! C4 y0 z4 l9 k" v, p
inti, j;
. U. }. V' W; Qfor( i = nFirst+nPeriod-1; i < pData->m_nNumData; i++ )
% K5 V" s9 J: j {/ @( Y9 |# O{
* J% O4 e& O4 sfTotal= 0.0f;
4 C* y$ ~' m1 g" {for( j=0; j < nPeriod; j++ ) //累加
! h% v" O+ j1 R2 h5 ^. i# @fTotal+= pValue[i-j]; s9 ^" G7 ?1 `; J+ J; q. f; Y
pData->m_pResultBuf= fTotal/nPeriod;//平均
9 g' V! }. Y8 T: t* t3 Y! J. J1 @}
7 B5 d4 L6 a+ W! E9 O: F- n9 f8 ~2 mreturnnFirst+nPeriod-1;
0 A: F1 h# ~% F- d8 o' Y} D% J }0 T, ]2 U
}8 w) z4 M# t! f
return-1;
$ a6 r8 ^7 M+ o9 L. h6 a' E}
5 M" F2 H$ U; ?0 Q//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数
! I1 v* d$ E- J" ?. [/** |8 Z, X7 o% t2 h
调用方法:
0 B) s* w9 J1 l4 A W; @MA1:=MA(CLOSE,3);* \& f. D% q' w- d, o! c
MA2:=MA(CLOSE,6);
" t8 r0 V+ ]8 x, V! _4 ~3 r& rMA3:=MA(CLOSE,12);7 `9 U+ T3 A4 `) C% M8 `3 C* S. f
MA4:=MA(CLOSE,24);3 i' A7 T* `& Y5 E
MYBBI:"FOXFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
3 Y6 V1 y) @7 I! A*/
: E* Q$ L6 {. O5 [5 q__declspec(dllexport)int WINAPI MYBBI(CALCINFO* pData)
4 N- S: j; ^* D6 `9 b" O{8 T0 T q. z }/ t2 t% P! @9 T, b
if( pData->m_pCalcParam[0].m_nParamStart >= 0 &&
% `0 @, O; T# L3 MpData->m_pCalcParam[1].m_nParamStart>= 0 &&, M! q( t, L6 ?3 b0 U
pData->m_pCalcParam[2].m_nParamStart>= 0 &&
$ T) |' k7 o9 vpData->m_pCalcParam[3].m_nParamStart>= 0 ) //4个序列都含有效数值) z- D0 V" P+ { |8 f. e
{6 Z1 _( ?# l4 y% y& w3 t& s
//计算返回的序列的第一个有效值位置
! z: \# t, ?% rintnFirst = pData->m_pCalcParam[2].m_nParamStart;//已知返回的序列的第一个有效值位置与第4个序列一致( m, w% s2 R) @7 O
//若不知,则1 L- i+ B" H4 p! K# u7 n
/*
0 {" r: W' s" R+ e. C' ~intnFirst = pData->m_pCalcParam[0].m_nParamStart;; P( O3 H) w( {3 p; ^3 r
if( nFirst < pData->m_pCalcParam[1].m_nParamStart ) + y$ O" [4 E/ m# d4 B% x
nFirst= pData->m_pCalcParam[1].m_nParamStart;4 H0 p4 }; P. ?' K2 ?1 r: F+ h5 l
if( nFirst < pData->m_pCalcParam[2].m_nParamStart ) / r, w% I; a( ^
nFirst= pData->m_pCalcParam[2].m_nParamStart;
0 B/ [$ g0 y0 Q% n+ Q" n0 d5 y \8 nif( nFirst < pData->m_pCalcParam[3].m_nParamStart )
: {3 S: }' L8 a% H1 V( v, P+ I+ {nFirst= pData->m_pCalcParam[3].m_nParamStart;
, x v! V1 F" a a- ]; F( ~$ t$ l*/
. h3 x$ T2 Z, F" xconstfloat* pValue1 = pData->m_pCalcParam[0].m_pfParam;0 K$ y; K: e1 ~. S
constfloat* pValue2 = pData->m_pCalcParam[1].m_pfParam;1 ~$ h6 Q6 T' s/ J
constfloat* pValue3 = pData->m_pCalcParam[2].m_pfParam;
) X1 v; O+ W5 j- F" x3 Qconstfloat* pValue4 = pData->m_pCalcParam[3].m_pfParam;
% _& v1 O/ W/ L, i. Sconstfloat* pValue5 = pData->m_pCalcParam[4].m_pfParam;
& a d$ N8 P# W. Z$ U& Y* [constfloat* pValue6 = pData->m_pCalcParam[5].m_pfParam;8 h8 y8 k, ~, U" e8 a" i* C# L
//const float* pValue1 = pData->m_pfParam1;
4 z5 t; z% \0 U6 j( P; j& Z# P* z2 `//const float* pValue2 = pData->m_pfParam2;
7 c9 U# a% M5 T, o z//const float* pValue3 = pData->m_pfParam3;8 [. e, f9 ?: w7 }/ _9 O
//int nNum = (int)(*pData->m_pfParam4);//实际上该例中已知nNum=4,在此用于说明数值参数的用法1 {+ l& C8 Z9 y6 O+ v
intnNum = (int)(pData->m_pCalcParam[6].m_fParam);//实际上该例中已知nNum=4,在此用于说明数值参数的用法3 d0 `5 y5 u& N; Q7 a" d
for(int i = nFirst; i < pData->m_nNumData; i++ )
* _4 y6 I. _4 b* e0 r{' ~: |' |- [8 W. K' f8 e& e. S
pData->m_pResultBuf=
, n; v; W* y% }# G; d" r//(pValue1 + pValue2 + pValue3 )/nNum;; O6 E: H# f( }1 O" h7 F3 `
(pValue1+ pValue2 + pValue3 + pValue4+pValue5 + pValue6)/nNum;
' p7 H) m5 N) N9 K I" z}3 P1 L3 ~- l* c7 T
returnnFirst;: l1 |5 h( m3 p
}
& {$ @; O7 J" W7 _return-1;" }$ H& f. u" \9 s& V& p, n
}! c. D" \4 S1 s- s! |
( v* i' |2 n9 w J9 r. [
) t* |3 ^ b/ c- y( f# g
7 ]3 [- }+ K# b//////////////////////////////////////////////////////////////pow10.asm& p/ N" P1 P: w7 w' h& g
;*******************************************************' f* t+ P+ r3 j4 ^) M1 _
;* *' e! z3 S5 e' ]. [' M
;* Delphi Run Library *0 {, T& i' I/ r5 v
;* *
( ^" j# M& L! z7 t1 A;* Copyright (c) 1996,98 Inprise Corporation *
7 K2 _/ S) f8 ?5 x0 K;*--------------------------------------------------------------------------
3 Z1 q3 w0 X; Y0 x! W! };* To compile "tasm32 /ml pow10.asm" *
3 \2 _0 F, @0 X0 L6 E7 W;*--------------------------------------------------------------------------; }3 _- Q1 {' y9 [1 Y
;*******************************************************
4 e4 O7 I8 J+ H! i. w+ ^.386
- F. g# K! s3 c* d0 I8 o: _2 w: o;.MODEL flat,c (error must be in segement block must have segment2 J' `) j1 ?7 I N7 c# k7 H# f
;!!!!!11 important if ',c' is not used , must use 'public _ppow10, and'_ppow10 proc'1 Z% W: N) r$ b" @
;!!!!!11 important if .MODEL flat,c is not used , must use ;_TEXTSEGMENT WORD PUBLIC
' ^% r, u1 o: n8 m9 I;'CODE'..._TEXT ENDS and must use 'public _ppow10 and '_ppow10 proc'+ ~0 C8 P8 O' O2 S6 i, C
.MODELflat,c ; just use .code, no need for segment,!!!!!11 important if',c' is used , must use 'public ppow10, and 'ppow10 proc'1 R8 H7 x7 O. U. j+ Z% A- l: m
;ppow10 PROTO,aVal:PTR REAL8, bVal:PTR REAL8( x1 {8 D' C8 q8 n7 m; m2 M
;includeE:\Vsource\masm32\INCLUDE\windows.inc9 c$ }% _. a7 h. J
;includeE:\Vsource\masm32\INCLUDE\user32.inc
% ~9 u3 z% T" A/ N4 N;includeE:\Vsource\masm32\INCLUDE\kernel32.inc+ M1 S/ _/ F$ h" U* R
PUBLICppow10% I+ u* U2 p% y' q# G* u
.CODE# K$ `0 F5 ^3 P9 ?2 e5 w
;DllEntryproc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD" K- \1 b. H; J# d6 @6 ?
;.if reason==DLL_PROCESS_ATTACH
# S! H2 |: o( };invoke MessageBox,NULL,addr LoadMsg,addr AppName,MB_OK
$ m3 W3 h! M0 {4 c% Q! f5 u5 g6 S;.elseif reason==DLL_PROCESS_DETACH' [( e; V7 z3 F/ m0 w
;invoke MessageBox,NULL,addr UnloadMsg,addr AppName,MB_OK
6 ~+ C3 Q9 K$ O5 T5 G* _4 O* J;.elseif reason==DLL_THREAD_ATTACH
: [# p, q) p) Z9 R/ x# y, F0 |;invoke MessageBox,NULL,addr ThreadCreated,addr AppName,MB_OK
7 i" T! @. }- v/ F;.else ; DLL_THREAD_DETACH
; M1 S1 k7 s# d0 {% k9 d;invoke MessageBox,NULL,addr ThreadDestroyed,addr AppName,MB_OK
- s4 Z9 s B7 `5 f0 T g$ j$ A;.endif W4 n2 S1 l8 n$ h
;mov eax,TRUE! z% f# @. c( d3 Q
;ret' X8 h+ d6 H! Z- f5 y
;DllEntryEndp
- l' Y9 T5 f, Q* p8 v% F5 D;FUNCTION _Ppow10( double val, double pow: ) : Extended;
+ j% u2 a) r5 c% P, ^% e. q' ^6 `) I;_TEXTSEGMENT WORD PUBLIC 'CODE'. m* Q7 } J4 D& o' h5 l1 t
;ppow10 PROC,aVal:PTR REAL8, bVal:PTR REAL8
; S6 z( q/ @5 s. l;ppow10 PROC,aVal:* Qword, bVal:Qword
6 u5 u! h# k. T, S# yppow10PROC near
6 B, [+ }6 V- h/ O ]XUEQU 8 ; for eip & ebp
) O, g* n1 c: H. {0 s m. b$ VXDEQU 0 ; for edi, esi, ebx, ecx, edx) D+ o, \" y7 \6 `8 l) L9 C( e
fp_powerEQU QWORD PTR [ebp+XU+8]; g( p7 J( w' k2 b
fp_valEQU QWORD PTR [ebp+XU]
- F) {* K/ R+ B9 U. u+ GvalEQU QWORD PTR [eBP-XD-8] ; USE STACK# ?; g5 X9 S+ U+ `) y$ k q
powerEQU QWORD PTR [eBP-XD-16] ; USE STACK$ W# u7 ]8 ?5 h* A
pow10EQU QWORD PTR [eBP-XD-24] ; USE STACK* A4 M0 G7 S6 \$ W5 G# f) _* \
FPower10:
* {+ R g% U2 q, upushebp; ~& t: P/ T1 O8 ]
movebp,esp
0 h3 [; Q8 k# `% F7 `;push edi; R3 C2 `) c' j2 Z
;push esi
9 ?) t& x2 R% z h3 Q5 G2 C% Z;push eax
# i! \3 @. D+ i0 d;push edx
( G: p9 i% `2 x$ s, ^/ Osubesp,24
( U8 \6 l4 h: IFINIT- w2 z1 W" U) Q
fldz
7 q5 o7 a f, I5 Dfstval6 G9 t: t+ k! I$ x _4 _1 U
fstpower
+ W: M r W9 ]# F6 `, rfstppow10
! s8 m/ H2 [" V: A- f* R MOV EAX,8 MOV EDX,8; fldpi- a. J' l1 j- D; l5 C+ P
fld fp_val ;st(0)=val; fld aVal;st(0)=val
( u; l, G' F* M4 _9 |2 h$ Efstval, i' c6 y9 X: b& ]3 C9 j9 o
;fld Arg2 ;st(0)=power
9 t* ^9 P; S4 s7 a m8 \0 a! L% o9 e;fstp power
+ p9 ^3 t7 h* }9 l p$ K7 L;fld val ;st(0)=val
, B" x& r* ]" z- w1 ~) `( };fmul val ;st(0)=val*val
. b3 M' {/ }2 D. d1 q };fmul val ;st(0)=val*va*val
/ {2 g# w0 D: e9 H$ Q. }0 t;fadd st,st(0)
* m7 F* q- \5 o0 ^4 F;fmul qword ptr [ebp+16] ;st(0)=power4 W4 C0 [' F3 {! |6 p* Q4 g
;fadd st,st(0)
) q Y; m, c' ^+ _2 v" L;fwait
0 Y" ]) b& X! Oaddesp,24% H3 d$ b/ J( o2 t! g; f/ `( _: ?
;pop edx
# u" } c! {% Y* r* D' \- d7 Y;pop eax& p# @, m! n5 `) I; M L( o
;pop esi
: u+ O4 m9 @; z4 \# i- u2 _;pop edi
) Q2 }* t# y9 _1 u0 [movesp,ebp; l& N) x7 P1 u; C" s2 |7 A* S: i
popebp
$ S1 o* E3 r L4 `0 G;leave ; @@@@@@ important don't use leave in vc++ 2010# Q2 [( A* t) I) _- e0 C6 d
RET;return value = st(0)
4 b& w- W" H8 [) ?" H. [ppow10ENDP
$ Y" ^6 H. K9 O x) O" q0 a;_TEXTENDS
3 _ |9 } @0 h' yEND
& c% w: d- m0 c; H+ c% _+ E;END DllEntry |