为什么我的空程序有太多未使用的导入?

问题描述 投票:-1回答:1

我正在和Visual Studio 2012 & 2017 with C++ 11Pelles C 9.0 with C++ 11合作......

当我构建一个空程序和DLL但它们包含很多未使用的pe文件导入!

VC ++有26个进口的KERNEL32和Pelles有70个进口的KERNEL32我的项目完全是空的!

我需要从链接器和编译文件中删除它们。

我有一个DLL使用Pelles C编译,它只有4个导入它真正使用:

    KERNEL32.dll
    VirtualProtect  ord:0 rva2iat: 000012A0
    GetModuleHandleA  ord:0 rva2iat: 000012A8
    Sleep  ord:0 rva2iat: 000012B0
    CreateThread  ord:0 rva2iat: 000012B8

我想做同样的事情,我不需要任何70个进口和功能,我该怎么做?

c++ visual-c++ pelles-c
1个回答
0
投票

感谢TimoVJL |这是解决方案:

#include <windows.h>

#ifdef _WIN64
#pragma comment(linker, "/ENTRY:DllMainCRTStartup")
#else
#pragma comment(linker, "/ENTRY:_DllMainCRTStartup@12")
#endif
BOOL WINAPI DllMainCRTStartup(HANDLE hDLL, DWORD dwReason, LPVOID lpReserved)
{
    if (dwReason == DLL_PROCESS_ATTACH) g_hmod = hDLL;
    return TRUE;
} 

我真的为这个社区感到难过,我记得以前真的很有帮助!现在,我只看到“人们正试图证明一个不好的问题”,而不是“人们正试图给出一个好的答案!”我问,这不是任何人的事情为什么我需要这个!这是关于安全,学习和......无论如何!最后这是一个问题!我刚刚在一个论坛上问过它,我在不到5分钟的时间内得到了答案,没有人问你为什么需要这个,他们只是回答了问题!

有一个不错的社区!

不要:

  • 无用
  • 有毒的
  • 告诉人们他们需要什么!
© www.soinside.com 2019 - 2024. All rights reserved.