ページ 11

VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月20日(木) 23:00
by さお
-------------------------------------------------------------
abc.h
-------------------------------------------------------------
#pragma once

namespace hoge {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Diagnostics;//←ここを追加
以下略
-------------------------------------------------------------
abc.cpp
-------------------------------------------------------------
#pragma endregion//この直下に定義
Stopwatch^sw = gcnew Stopwatch();//ここに記述
-------------------------------------------------------------
これでグローバル変数として
ヘッダーファイルからもCPPファイルからも
Stopwatchを使えるようになったのですが

abc.cppにはどうして定義できないのでそうか?

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

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月20日(木) 23:03
by さお
すいません。
先ほどの投稿に誤りがありました。
abc.h では使えたのですが
abc.cpp ではつかえませんでした。

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 21:29
by Math
私はC++を VC++ CLRで勉強したのですが 言っていることが把握できません。(^^;
もっと他人に分かるようによく考えてみましょう。
まずいまつくった *.h *.cpp の全文を提示しみてください。

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 21:58
by さお
返信ありがとうございます。

たとえば
hファイルに
Stopwatch^sw = gcnew Stopwatch();
を記述しエラーなし

sw->Start();

hファイルでは正常
sw->Start();

cppファイルでは


それと
cppファイルに
Stopwatch^sw = gcnew Stopwatch();
を記述し
エラー 識別子 "sw" が定義されていません。

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:00
by さお
すいません。書き直します。。。

たとえば
hファイルに
Stopwatch^sw = gcnew Stopwatch();
を記述しエラーなし

sw->Start();

hファイルでは
正常

sw->Start();

cppファイルでは
エラー 識別子 "sw" が定義されていません。

それと
cppファイルに
Stopwatch^sw = gcnew Stopwatch();
を記述し
エラー C3145 'sw': グローバルまたは静的変数は、マネージ 型 'System::Diagnostics::Stopwatch ^' を含むことはできません

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:01
by Math
まず全文を提示して下さい。エラーがでるならエラー文も。

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:10
by さお
何でこの情報で
わからないのですか?

具体的にご指摘お願いします。

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:18
by Math
プログラムが長いのですか?(^^;

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:27
by Math
VC++ ではForm の主要部分は *.h に書くことが推奨されていることはご存知ですよね。(実際おおくのサンプルがそうなっているはず)
*.h と *.cpp の全文を2種類提示してもらえばすぐわかるはずですよ。

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:28
by さお
この情報で答えが見つからないのなら
全文を見てもノイズにしかならないと思います。
500行は越えてるので

Re: VC++ clr で 静的フィールドに定義したい

Posted: 2017年7月21日(金) 22:38
by さお
すいません。何か私の勘違いがありました。
やり直します。