2011-01-12 108 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