从 DLL 函数调用非 DLL 函数
Posted
技术标签:
【中文标题】从 DLL 函数调用非 DLL 函数【英文标题】:Calling non-DLL function from DLL function 【发布时间】:2011-01-12 18:19:23 【问题描述】:我正在编写一个 DLL:
#include "stdafx.h"
_DLLAPI int __stdcall myDLLFunc()
return test(4);
int test(int arg)
return arg * arg;
但是当我尝试在 MS VC++ Express 中编译它时,它说:
错误 C3861:“测试”:找不到标识符
如何从myDLLFunc
呼叫test
?
我错过了显而易见的事情吗?
提前致谢。
【问题讨论】:
【参考方案1】:将被调用函数放在代码中的调用者之前,它应该可以编译。 C++ 不会对被调用的函数进行“前瞻”,它们必须在任何使用之前声明。
#include "stdafx.h"
int test(int arg)
return arg * arg;
_DLLAPI int __stdcall myDLLFunc()
return test(4);
通常,您会将函数的声明(在头文件中)与定义(在代码文件中)分开,以降低依赖关系的复杂性。
【讨论】:
或者您可以在不将 test() 移到 myDLLFunc() 上方的情况下进行 test() 的前向声明。 @Ganesh - 谢谢,我添加了关于标题/代码分离的注释以上是关于从 DLL 函数调用非 DLL 函数的主要内容,如果未能解决你的问题,请参考以下文章
从 C# 调用 Advapi32.dll 本机 EventWrite 函数?