C++ 导出与Win32 API函数同名的函数
我有一个项目,我从中导出一个名为BlockInput的函数。这个函数是我自己的,但是在User32中也有一个名为BlockInput的Win32 API。因此,将我的函数导出为BlockInput会导致编译器假定引用了User32.BlockInput,并将其导出 我的导出操作如下所示: MyHeader.hC++ 导出与Win32 API函数同名的函数,c++,dll,dllexport,C++,Dll,Dllexport,我有一个项目,我从中导出一个名为BlockInput的函数。这个函数是我自己的,但是在User32中也有一个名为BlockInput的Win32 API。因此,将我的函数导出为BlockInput会导致编译器假定引用了User32.BlockInput,并将其导出 我的导出操作如下所示: MyHeader.h ELITEAPI void\u stdcall块输入(void*apobject,bool块); 导出.def BlockInput 这个DLL总共有大约100个导出,它们都工作得很好
ELITEAPI void\u stdcall块输入(void*apobject,bool块);
导出.def
BlockInput
这个DLL总共有大约100个导出,它们都工作得很好,只是这个有一个问题,因为系统API共享相同的名称。有没有一种方法可以导出此函数而不必将其重命名为其他函数?我可以强制.def文件专门使用我的函数而不是user32 first中的函数吗?您可以在.def文件中重命名该函数,以便它将MyBlockInput导出为BlockInput。但是,客户端处理BlockInput的两个定义仍然存在问题,一个来自DLL,另一个来自user32。这是我试图避免的。如果可能的话,我希望能够阻止user32的BlockInput被看到。您可以在头文件中更改它<代码>#ifdef MYDLL_实现
#定义块输入MyBlockInput
。您可能已经有了此#ifdef
,因此可以更改ELITEAPI
的定义。您可以重命名.def文件中的函数,以便将MyBlockInput导出为BlockInput。但是,客户端处理BlockInput的两个定义仍然存在问题,一个来自DLL,另一个来自user32。这是我试图避免的。如果可能的话,我希望能够阻止user32的BlockInput被看到。您可以在头文件中更改它<代码>#ifdef MYDLL_实现#定义块输入MyBlockInput
。您可能已经有了这个#ifdef
,因此您可以更改精英API
的定义。