2011-01-12 21 views
0

私はDLL足すいます:呼び出し非DLL関数は

をしかし、私はMS VCでそれをコンパイルしようとすると、それが言うエクスプレス++:

エラーC3861: '試験' :識別子が見つかりません

testmyDLLFuncから電話する方法を教えてください。 明白なことがありませんか?

ありがとうございます。

答えて

4

呼び出し元よりも先に呼び出された関数をコードに入れてコンパイルする必要があります。 C++は呼び出された関数を先読みしていないため、使用前に宣言する必要があります。

#include "stdafx.h" 

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

{ 
    return test(4); 
} 

通常は、依存関係の複雑さを低減する(コードファイル内の)定義から(ヘッダファイルに)別の関数の宣言を維持するであろう。

+1

または、myDLLFunc()の上にtest()を移動しなくても、test()の前方宣言を行うことができます。 –

+0

@Ganesh - ありがとう、私はヘッダー/コードの分離についてのメモを追加しました –

関連する問題