如何声明将在不同位置调用的导出函数?

时间:2011-03-08 05:48:08

标签: c windows visual-studio

我在EXE中有一个FuncA()。从EXE内部和DLL内部调用FuncA()。因此,我为FuncA()编写了一个回调函数,以便DLL可以调用它。因此,我需要导出FuncA(),以便我可以从DLL内部获取函数地址。

declspec(dllexport) void FuncA(){ return; }//declspec(dllexport) is to be able to get the function address.

然而, 因为FuncA()也是从DLL内部从EXE内部调用的, 我的问题是EXE中的funcA()声明。该声明将由EXE内的函数使用。

void FuncA();//If I write it this way I get the following error:
error C2375: 'FuncA' : redefinition; different linkage

declspec(dllimport) void FuncA();//If I write it this way, I get the following warning and the program hangs.
warning LNK4049: locally defined symbol _FuncA imported

如何撰写适当的声明? 注意:Windows,Visual Studio 2008,Standard-C