none
pplxtasks.h内のRetuenAddressについて RRS feed

  • 質問

  • お世話になります。

    C++のソースを作成し、ビルドしたところ、

    以下の2件のメッセージが出力され、ビルドに失敗してしまいます。

    E0020 識別子"_ReturnAddress"が定義されていません。

    C3861 '_ReturnAddress';が見つかりませんでした。

    ヘッダーファイル(pplxtasks.h)はMicrosoftから入手した内容から変更などはしていません。

    開発環境は下記になります。

    Windows 10 Pro

    Visual Studio 2017 Comminity

    ヘッダーファイルを見た限りでは、上記の関数は定義されているようでして、

    対処方法が分からない状態です。

    皆様のお力をお借りできませんでしょうか。

    宜しくお願い致します。

    2017年6月4日 8:33

すべての返信

  • すみません。確認ですが、pplxtasks.h は

    https://github.com/Microsoft/cpprestsdk/tree/master/Release/include/pplx

    から入手されたものでしょうか?

    2017年6月4日 8:57
  • こんにちは、ReturnAddressについて さん
    フォーラムオペレータの立花楓です。

    ご投稿いただきありがとうございます。

    ご質問いただいた内容はディスカッション形式で投稿されておりましたが、
    質問形式の方が適切かと思いましたので、こちらで変更させていただきました。

    よろしくお願いいたします。


    MSDN/TechNet Community Support 立花楓

    2017年6月5日 1:32
    モデレータ
  • _ReturnAddress()関数を宣言しているのはintrin.hなので、事前に以下のインクルードを行っておくべきなのかもしれません。

    #include <intrin.h>

    Microsoftはプリコンパイルヘッダーを推進するためか、割とインクルードにルーズです。

    2017年6月5日 2:14
  • <pplxtasks.h>は、Visual Studio 2017であれば、_MSC_VER 1910である為、
    最終的に、#include <intrin.h>をインクルードしているので、
    E0020 識別子"_ReturnAddress"が出ることはないと思うのですが。

    <pplxtasks.h>
    #if (defined(_MSC_VER) && (_MSC_VER >= 1800)) && !CPPREST_FORCE_PPLX
    #include <ppltasks.h>
    namespace pplx = Concurrency;
    ...

    <ppltasks.h>
    #ifndef _PPLTASKS_H
    #define _PPLTASKS_H
    #include <pplwin.h>
    #include <functional>
    #include <vector>
    #include <utility>
    #include <exception>
    #include <algorithm>
    #include <mutex>
    #include <intrin.h>
    ...

    <pplxtasks.h>でなくて、直接<ppltasks.h>をインクルードしても結果は同じなのでしょうか。

    2017年6月5日 15:05