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;
}
あなたは '_WINDLL'を定義していますか? – Thomas
はい、ダイナミックライブラリをプロジェクトタイプとして選択した場合、Visual Studioによって定義されます。また、VS 2013はどのマクロが定義されているかを示しています。息子は '_WINDLL'が動作していると確信しています。 – Dan
'_WINDLL'はどこに定義されていますか?ヘッダーファイルのどこかに置かれていますか? – Andy