15,471
社区成员
发帖
与我相关
我的任务
分享
#include <windows.h>
#pragma data_seg("Shared")//声明内存段,名称为Shared
int dwID=6;//定义一个整数初始化
#pragma data_seg()//使整数放入内存段(定义内存段并初始化内存段内容)
//至此说明了一个内存段,该内存段包含了一个int的整数,内存段名称为Shared,整数名称为dwID,该整数必须初始化才能够使得编译器给它分配4字节空间.
#pragma comment(linker,"/SECTION:Shared,RWS")//要求编译器设置一个名为Shared的内存段,属性为任何进程可读可写(RWS)
//DLL模块入口地址 调用DLL模块原因 释放
BOOL WINAPI DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
return TRUE;
}
//extern "C"表示编译链接符合C语言命名规范 __stdcall调用函数规范:决定参数压栈方式、退栈方式、释放堆栈空间方式.
extern "C" int __stdcall Add(int a,int b){
return a+b;
}
extern "C" int __stdcall Substruct(int a,int b){
return a-b;
}
extern "C" void __stdcall setData(int data){
dwID=data;
}
extern "C" int __stdcall getData()
{
return dwID;
}
头文件内容:
#ifndef MX81A_H
#define MX81A_H
extern "C"{
int __stdcall Add(int a,int b);
int __stdcall Substruct(int a,int b);
void __stdcall setData(int data);
int __stdcall getData();
};
#endif
def文件内容:
LIBRARY MX81A
EXPORTS
Add @ 1
Substruct @ 2
setData @ 3
getData @ 4