2011年7月17日日曜日

一時


#include <stdio.h>

int __stdcall test(){
return printf("test\n");
}

int __stdcall test2(){
return printf("test2\n");
}

typedef int (__stdcall *FARPROC)(void);
typedef int (__stdcall *TEST)(void);
typedef int (__stdcall *TEST2)(void);
typedef int (__stdcall *TEST3)(void);

TEST pTest;
TEST2 pTest2;
TEST3 pTest3;

FARPROC getAddr(int i){
FARPROC result = NULL;

if(i == 0)
result = test;
else if(i==1)
result = test2;

return result;
}

void main(){
int result = 1;

for(int i = 0; i >= 0; i++){
pTest = (TEST)getAddr(0);
result &= pTest != NULL;

pTest2 = (TEST2)getAddr(1);
result &= pTest2 != NULL;

pTest3 = (TEST3)getAddr(2);
result &= pTest3 != NULL;
}
}