2011-01-12 110 views
0

我书面方式一个DLL:调用非DLL函数

但是当我尝试编译它在MS VC++速成它说:

错误C3861: '测试' :未找到标识

如何从myDLLFunc拨打test? 我错过了明显的?

在此先感谢。

回答

4

将被调用的函数放在代码中的调用者之前,它应该进行编译。 C++不会为被调用的函数“向前看”,它们必须在任何用法之前声明。

#include "stdafx.h" 

int test(int arg) 
{ 
    return arg * arg; 
}_DLLAPI int __stdcall myDLLFunc() 

{ 
    return test(4); 
} 

通常情况下,你会自定义(代码文件)保持函数的声明分开(在头文件),以减少依赖的复杂性。

+1

或者您也可以在不移动testDL()上方myDLLFunc()的情况下进行test()的前向声明。 – 2011-01-12 18:32:03