前几天要的别人的代码看,一个自己使的DLL,4个导出函数突然发现他竟然把dllexport的函数全部在共享段内声明#define SHARE_DATA extern "C" __declspec(dllexport)
#pragma data_seg(".SHARE")
SHARE_DATA bool fun1(arg1..........);
SHARE_DATA bool fun2();
SHARE_DATA bool fun3();
SHARE_DATA bool fun4();
#pragma data_seg()类似这样,人不在也不好问,只是想不通为什么这样写,有什么优劣
#pragma data_seg(".SHARE")
SHARE_DATA bool fun1(arg1..........);
SHARE_DATA bool fun2();
SHARE_DATA bool fun3();
SHARE_DATA bool fun4();
#pragma data_seg()类似这样,人不在也不好问,只是想不通为什么这样写,有什么优劣
内存占用会略多一点,可以忽略不计。
有个疑问,在共享段声明函数是就放了个声明还是整个函数都丢进去了?
我一直以为是全部函数都扔进共享段,这样的话,内存占用肯定要大好多吧……防止DLL导出函数被hook的意识是不是inline hook改函数首地址的话,由于共享,可以被发现?还是说在共享段内声明HOOK之后会引起所有调用者出错?还是不明白内存占用的问题,同上,共享段内到底放进去了什么?函数首地址?整个函数?还是别的什么?请多指教