2016-04-24 2 views
0

C++ DLLを作成しようとしています。私はmsdnのチュートリアルに従ってきましたが、正しくDLLをコンパイルできません。ビジュアルスタジオでC++ dllをエクスポートできません。

問題は、すべての関数がエクスポートされることです。私はdumpbin.exeツールとnmツールでテストしました。

どちらの場合も、検出されたシンボルはありません。ここで

は、このライブラリのコードです:

ヘッダファイル:

#ifndef NLIB_H 
#define NLIB_H 

#ifdef _WINDLL 
#define NLIB_EXPORTS __declspec(dllexport) 
#else 
#define NLIB_EXPORTS __declspec(dllimport) 
#endif 

#ifdef __cplusplus 
extern "C"{ 
#endif 

    NLIB_EXPORTS int fun1(int n); 

#ifdef __cplusplus 
} 
#endif 

#endif 

ソースコードファイル:

#include "nlib.h" 

int fun1(int n) { 
    return 100; 
} 
+2

あなたは '_WINDLL'を定義していますか? – Thomas

+0

はい、ダイナミックライブラリをプロジェクトタイプとして選択した場合、Visual Studioによって定義されます。また、VS 2013はどのマクロが定義されているかを示しています。息子は '_WINDLL'が動作していると確信しています。 – Dan

+0

'_WINDLL'はどこに定義されていますか?ヘッダーファイルのどこかに置かれていますか? – Andy

答えて

2

私は、エラーを発見しました。それはこのように、また*.cファイルにNLIB_EXPORTSを追加する必要があります:あなたはDLLをビルドするとき

#include "nlib.h" 

NLIB_EXPORTS int fun1(int n) { 
    return 100; 
} 
関連する問題