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

declspec(dllexport)void FuncA(){return; } // declspec(dllexport)将能够获得函数地址。


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

void FuncA(); //如果以这种方式编写,则会出现以下错误:
错误C2375:'FuncA':重新定义;不同的联系


和,

declspec(dllimport)void FuncA(); //如果以这种方式编写,则会收到以下警告,程序将挂起。
警告LNK4049:导入了本地定义的符号_FuncA


如何编写正确的声明?
注意:Windows,Visual Studio 2008,Standard-C

最佳答案

我相信您可能会发现Can one use in a DLL, an external function that is provided by the main application instead of exporting DLL functions to the application?的重复项

关于c - 如何声明将在各个位置调用的导出函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5228832/

10-10 13:59