C#とC++の共通フラグの設定・参照法

このQ&Aのポイント
  • C#とC++で共通のフラグを設定・参照する方法について解説します。
  • C#とC++のプロジェクトで同じCommon_Flagを参照する方法について調査しましたが、具体的な方法は見つかりませんでした。
  • C++からC#のCommon_Flagを参照するサンプルコードが必要です。
回答を見る
  • ベストアンサー

C#とC++の共通フラグの設定・参照法は?

.NET C# でプログラムを作ってあります C#にはフォームが3ケあり共通のフラッグを設定・参照し合っています フラッグは数値であり、共通領域に次のように確保しています class ComData { static int Common_Flag = 0; } 設定は ComData.Common_Flag = 1; 参照は if (ComData.Common_Flag == 0) { ・・・・・ } else { ・・・・・ } などと極く平凡にしております 今回必要があり同じソリューションの中に、従来のC#プロジェクトとは別にC++プロジェクト(DLL)を作り同じCommon_Flagを参照しなくてはならなくなりました C++からC#のCommon_Flagを参照するには何の様にすれば宜しいのでしょうか? 色々調べましたが分かりません 適当なサンプルなどが御座いましたらご指導お願い申し上げます

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1621/5656)
回答No.1

C++/CLIですればいいような。

sato-may
質問者

お礼

ありがとうございました

関連するQ&A

  • 同じソリューションの別プロジェクトの参照方法は?

    VS2005ProのVB2005を使用しています。 Aというソリューションに BプロジェクトとCプロジェクトがあります。 Bプロジェクトの参照設定にD.DLLを追加しました。 Bプロジェクトに追加されたD.DLLを使用しようと思い Cプロジェクトの参照設定にBプロジェクトを追加したのですが D.DLLがCプロジェクトからは使用できません。 どのように設定を行えばCプロジェクトから Bプロジェクトに追加されたD.DLLが 使用可能になるのでしょうか? よろしくおねがいします。

  • C#で、定数をフラグ(if文)によって切り替え

    C#ですが、カテゴリが無いのでC/C++のカテゴリに入れています。 基本的に変数(定数)の宣言は1回しか出来ないとわかっていますが、 以下の様な定義を何とかできないでしょうか? if (true) { public static readonly string Flag = "True"; } else { public static readonly string Flag = "False"; } これって、変数を使って、以下のようにするしか無いですよね…… public static string Flag = ""; if (true) { Flag = "True"; } else { Flag = "False"; } もしくは、変数で宣言した物を、途中で定数にする事は可能でしょうか? 目的としては、グローバルで宣言した変数を別の関数で変更されないようにしたいだけなのですが。 何か、手があれば教えてください。

  • C++/CLIのDLLをC#で使う

    C++/CLIのDLLをC#で使う ソリューションの中にC++/CLIでクラスを作成し、出力がDLLのプロジェクトと、 C#でGUI画面の処理のプロジェクトがあります。 このときC#側でC++/CLI側で作ったDLLを使用したいのですが、やり方がわかりません。 DLL自体はC#のDebugフォルダに入っており、参照設定で読み込んでいます。 ご教授のほど、よろしくお願いいたします。

  • 【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい

    【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい WindowsXP上で visual studio 2008 C++ express editionを 使用しています。 1つのソリューションに2つのプロジェクトをつくり、 その2つに共通の関数を使用させたいのですが、どのように 設定すればよいか教えて頂けませんでしょうか。 ソースの内容は以下のとおりです。 具体的には、mainB.cppでcommon.cppの関数を 呼び出したいです。 //common.cpp #include <stdio.h> void showCommon(){ printf("---common-----\n"); } //common.h #include<stdio.h> void showCommon(); //mainA.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainA-----\n"); showCommon(); } //mainB.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainB-----\n"); showCommon(); }

  • 参照するDLLを格納したフォルダをVSS管理したい。

    参照するDLLを格納したフォルダをVSS管理したい。 ソリューションに、プロジェクトA、プロジェクトBがあり、それぞれフォルダ1の中にある DLLを参照しています。 これをソリューションごとソース管理に追加したいのですが、他のメンバがVSSから 落とした場合、コンパイルが通らなくなるので、参照しているフォルダごとVSSに あげたいのですが…。 ソリューションにフォルダは追加できないようなので、VisualStudioからプロジェクトA、 プロジェクトBにそれぞれフォルダを作り、その中にそれぞれDLLを追加するしかないので しょうか? しかし、DLLのバージョンがあがった場合、大変手間です。 すべてのプロジェクトが同じDLLを参照し、かつ、そのDLLもソリューションに追加し、 ソース管理したときに一緒にVSSにアップロードされるようにはできないのでしょうか? ※VisualStudioは2005です。

  • DLLから他のプロジェクト変数の参照方法???

    C#でWindowsフォームのアプリケーションを作りました 構成は親のフォームのプログラムFormMain.csと5ケの子供プログラムFormSub1~5.csです データの受渡しは親プログラムの中に class CommonData { static public bool BoolData = true; static public int IntData = 1; static public string StringData = "冬が来ました"; } を作り、子供プログラムの中で if (CommonData.BoolData == false) ......... int j = CommonData.IntData; CommonData.StringData = "きっと春も来るでしょう"; などとやっておりました ところが今回事情があり、Windowsフォームのアプリケーションのプロジェクトとは別プロジェクトとして.NET C++でDLLを作らなくてはならなくなりました サンプル等を参照して何とかDLLを作り動かしましたが、DLLの中で上述のCommonData.BoolDataを参照しなくてはなりません デバックではDLLの中でCommonData.BoolDataに変わる固定値を臨時に設定してロジックを検証しました ところが本番ではWindowsフォームのアプリケーションのFormMain.csの中に規定されたCommonData.BoolDataを参照しなくてはなりません DLL側でどのようにすれば良いのでしょうか? なおCommonData.BoolDataのtrue、falseは時々刻々変化しますので、DLLが起動される度に最新の状態を参照したいのです

  • visualstudioでc#のdllができない

    visualstudio2010を使用しています。 dllの作成をしたいのですが、なぜか作られません。 どこに手順を書きますのでどこに間違いがあるか教えてください。 (1)作成したプロジェクトを開く (2)ファイルー新しいプロジェクトを選択 (3)クラスライブラリを選択 (4)ソリューション(S):ソリューションに追加を選択ーOKボタン (5)DLLの中を書く (6)参照設定を選択する (7)ソリューションのプロパティのビルドでフォルダを指定する。 (8)ビルドする(もちろん通る) しかし、DLLはどこにも見当たらない。 検索しても、クラスライブラリを選択すれば自動的にできると書いてあるので、困り果てています 機能はMEFを使用し、僕ではない人が作ったDLLがすでに追加されており、僕もDLLを追加したいのですが、なぜかDLLが作成されません。 詳しいかたよろしくおねがいします。

  • VB.NET2005の参照設定について

    VB.NET2005の参照設定について 新規プロジェクトで開くときにすでに作成したクラス(dll)を、デフォルトで参照設定されているようにできないでしょうか?

  • VB.NETで参照設定

    Visual Basic .NET について質問致します。 VB 6.0は使用していたのですが、.NETに関して初心者です。 VSSにてファイル管理をしています。 共通で使用するためののオリジナルDLLを作成し 参照設定をしているのですが、参照パスがフルパスで設定されているため (プロジェクトのプロパティページの「参照パス」のフォルダのところ) VSSから最新プロジェクトファイルを取得した後 いつも参照パスを自分のローカルのパスに変更しなおさなければいけません。 とても効率が悪く、もっといい方法があるかと思うのですが、 教えていただきますようお願い致します。

  • 異なるexeから参照しているdllの変数は実行時のメモリ領域として独立的か?

    結論から質問内容を言うと、 異なるexeから参照しているdllの変数は実行時のメモリ領域として独立的か? 具体的には、 A.exeと、B.exeの両方で参照している Common.dllに定義しているクラスの staticなフィールドは、A.exe実行時のメモリ領域と、 B.exe実行時のメモリ領域と、完全に別で独立状態 であることを前提にしているのですが。。。 これは本当に真なのかを確認させてください。 あたりまえじゃねーかバカ野郎っていわれそうですが ちょっと、そこ間違えると後で、痛いので、 念押しで再確認お願いします。 <質問に至った経緯> Delphi3.0からVB.NET2003(2005未対応のコンポーネントを使用する諸事情があったから) にシステム移行の案件があり、 工数を避けません。現在、開発方針を検討中で調査していると、デルファイプロジェクトAと、 デルファイプロジェクトBで、Commonという名前の フォルダにあるソースを共有していて、 A.exeとB.exeを作っていました。 特に共通部分をdllにしていたりしていませんが。 VB.NETでそれは、きついので、 Commonにあるソースだけ、集めたCommon.dllを作る プロジェクトを作り、Aプロジェクト、BプロジェクトがCommon.dllを参照するやり方を検討しました。 Common.dllには、たくさんグローバルな変数が定義されていたので、 グローバルなデータは、もともとのソースファイルごとにクラスを 作ってそこにスタティックなフィールドとして宣言していく。それをAや、Bのプロジェクトのソースで 使うが、もともと、デルファイがexeが完全にわかれていたので、VBでdllに分けた結果、実行時にメモリも 共有されると、意図した動きをしてくれない懸念が あるので、それはないのかどうかを確認したかった。 ########################################### 以上です。

専門家に質問してみよう