none
dllimport errors in Building C++ DLL project with Visual Studio 2017 Professional 15.3.5

    質問

  • 以前のバージョンではエラーはでないC++で書いたDLLのプロジェクトがあります。 Visual Studio 2017 Professional 15.3.5 でこれをビルドすると"dllimport ..." というエラーがでます。15.3.5 では"プロジェクト名_EXPORTS" という定数が define されなくなったようですが、バグではないですか?

    すなわち、プロジェクト名がExampleだとすると、EXAMPLE_EXPORTS という定数を「DLLライブラリ自体のビルド」時に定義することによって、「そのDLLを利用するプログラムのビルド」時と区別していましたが、15.3.5ではその定数が前者の場合にも定義されなくなったように見えます。

    2017年10月8日 0:02

回答

すべての返信

  • この手の定義はコンパイラが勝手にするものではなく、プロジェクトのプロパティ、構成のプロパティ、C/C++、プリプロセッサで定義されているものです。
    しかしながら、手元の VS2017(15.3.5) で試すと、言われているようにエラーになります。

    どうも、プリプロセッサ定義の方が大文字になっていないのが原因みたいなので、手修正してください。
    (Debug/Release ともに)

    手修正される際は、このテキストボックスを直接触ると勝手に元に戻ることがあるようなので、ドロップダウンの編集からダイアログを開いた方が良いです。

    -----

    それらしい不具合報告は見つけたものの、Microsoft のチームにうまく再現手順が伝わっていなさそうだったので、コメントも書き足しておきました。

    https://developercommunity.visualstudio.com/content/problem/116266/template-vcproject-desktop-wizard-for-dynamic-libr.html

    2017年10月8日 0:40
    モデレータ
  • Developer Community のフィードバックにアップデートがかかり、次のリリース(15.4 には間に合っていないらしいので、15.5 かな?)で修正されるという情報が載りました。
    (DavinciL さんの質問がきっかけで、Visual Studio の改善につながりました)
    2017年10月9日 8:53
    モデレータ