流沙团
Def 导出表测试使用
2017-11-15 流沙团


具体创建如何创建def类型的导出表可以直接自己测试



这里只贴 使用的代码







// 20171111_01.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <Windows.h>

#pragma comment(lib,"TestDef.lib")

/*
extern "C" __declspec(dllimport) __stdcall Plus(int x,int y);
extern "C" __declspec(dllimport) __stdcall Sub(int x,int y);
extern "C" __declspec(dllimport) __stdcall Mul(int x,int y);
extern "C" __declspec(dllimport) __stdcall Div(int x,int y);
*/

/*
typedef int (__stdcall *lpPlus) (int x,int y);
typedef int (__stdcall *lpSub) (int x,int y);
typedef int (__stdcall *lpMul) (int x,int y);
typedef int (__stdcall *lpDiv) (int x,int y);
*/

typedef int ( *lpPlus) (int x,int y);
typedef int ( *lpSub) (int x,int y);
typedef int ( *lpMul) (int x,int y);
typedef int ( *lpDiv) (int x,int y);


int main(int argc, char* argv[])
{

lpPlus myPlus;
lpSub mySub;
lpMul myMul;
lpDiv myDiv;

HINSTANCE hModule = LoadLibrary("TestDef.dll");

/*
myPlus = (lpPlus)GetProcAddress(hModule,"_Plus@8");
mySub = (lpSub)GetProcAddress(hModule,"_Sub@8");
myMul = (lpPlus)GetProcAddress(hModule,"_Mul@8");
myDiv = (lpDiv)GetProcAddress(hModule,"_Div@8");
*/

myPlus = (lpPlus)GetProcAddress(hModule,MAKEINTRESOURCE(12));
mySub = (lpPlus)GetProcAddress(hModule,MAKEINTRESOURCE(15));
myMul = (lpPlus)GetProcAddress(hModule,MAKEINTRESOURCE(13));
myDiv = (lpPlus)GetProcAddress(hModule,MAKEINTRESOURCE(16));

//printf("hModule: %x \n",hModule);


int x= myPlus(101,11);
int y = mySub(101,1);
int k = myMul(10,20);
int z= myDiv(22,11);

printf("myPlus: %d \n",x);
printf("mySub: %d \n",y);
printf("myMul: %d \n",k);
printf("myDiv: %d \n",z);

getchar();

return 0;
}


关键代码:  



myDiv = (lpPlus)GetProcAddress(hModule,MAKEINTRESOURCE(16));

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容