• ベストアンサー

C++/CLIの有効指定???

.NET C++ であるサンプルプログラムをコピーして実行しました すると次のエラーが発生しました "#USING"ではC++/CLIが有効になっている必要があります 確かにソース文には #USING ステートメントがあります 色々調べましたが C++/CLI を有効に指定する方法が分かりません どのようにすれば良いかご指導をお願い申し上げます

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

  • ベストアンサー
回答No.2

もしVisualStudioのIDEでビルドしているのであれば、 プロジェクトのプロパティ → 構成プロパティ → 全般 を開き、「共通言語ランタイムサポート」のドロップダウン一覧の中から「共通言語ランタイムサポート (/clr)」を選択します。

sato-may
質問者

お礼

ありがとうございます ご指導の通りの手順で再設定したところ一発OKでした 今後も宜しくお願い致します ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

コンパイル・オプション: /clr

sato-may
質問者

お礼

ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C#からC++/CLIにサンプルソースを書き換えたい。

    VC++/CLIは、過去のソースをそのまま利用できる(マネージ・アンマネージ混在可能)?ので、C++/CLIで作成したく、 以下のURLにC#のサンプルソースはあるので、 http://www.geocities.jp/hatanero/socket1.html これからVC++/CLIに書き換えたいのですが、ここは全然違うというものがありましたら、教えて下さい。 C#からVC++/CLIに変換できるツールはあるのでしょうか?

  • C++/CLIとC#の連携について

    いつも拝見させていただいております。 現在、C++/CLIとC#にて連携を行っているのですが、C++/CLIで作成したクラス配列 がC#側でどのようにすれば受け取れるのか方法がわかりません。 C++/CLIで作成しているクラス配列はSystem::Collections::Generic::Listを使用 して配列化しています。 下記がC++/CLIのソースになります。 List<testClass>^% testClass::GetList() { List<testClass>^ lpTestClassList = gcnew List<testClass>(); testClass^ lpTestClass; lpTestClass = gcnew testClass(); lpTestClassList->Add(lpWatchServiceMasterInfoWrapper); return lpTestClassList; } これをC#側で使用しようとすると下記エラーが発生します。  「この言語によってサポートされていません」 C++/CLI⇒C#間の連携ではListクラスを使用することは不可能なのでしょうか? クラスを配列にして引き渡したいだけなので、他の方法等含めて何か参考になることがありましたら ご教授ください。 よろしくお願い致します。 開発環境  C++/CLI ⇒ DLL(ネイティブなコードを参照するためのラッパー用DLL)  C# ⇒ アプリケーション

  • C++/CLIで、アンマネージC++のDLLを使用する方法

    こんにちは。 C++/CLIのプログラムで、アンマネージC++のDLLを使用したいと考えています。 ネット上をいろいろ調べたのですが、具体的な手段がわかりません。 見よう見まねで以下のようにサンプルを作成したのですが、コンパイルすら通る状況になりません。 かなり基本的な問題がありそうで申し訳ないのですが、下記の問題点を教えていただけないでしょうか。 また、参考になりそうなサイトなどありましたら教えていただけると大変助かります。 ■アンマネージC++のDLL VC++6.0で、以下のように、単にデバッグ文字列を書き出すだけのDLL関数を作成しました。 (このDLLが使用できることは他のVC++6.0プロジェクトで確認済みです) /*-----Func.h-----*/ #ifndef __FUNC_H__ #define __FUNC_H__ AFX_EXT_CLASS void WINAPI ShowMessage(); #endif //__FUNC_H__ /*-----Func.cpp-----*/ #include "StdAfx.h" #include "Func.h" #include <stdio.h> void WINAPI ShowMessage() { CString str = "This is The Message from DLL Func!\n"; OutputDebugString(str); } ■C++/CLI でのDLL使用 Visual Studio2008にて、C++のCLRプロジェクトを作成して、以下のようにDLLを使用する準備を行いました。 1.ソリューションエクスプローラのヘッダフォルダに、Func.hを追加 2.プロジェクトのフォルダに、上記で作成したFuncのDLLとLIBファイルを置く。 3.プロジェクトの「プロパティ > C/C++ > プリプロセッサ > プリプロセッサの定義」に、"_AFXDLL"を追加 4.mainクラスのソースに以下を記述 /*----------*/ using namespace System; #include "Func.h" #using "ManagedDllApp.dll" int main() { ShowMessage(); return 0; } /*----------*/ この状態でコンパイルすると、 「エラー 3 error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 d:\xxx\Func.h 4 Console 」等、Func.h周りで複数のエラーが出ます。 また、Func.hをインポートしないでコンパイルすると、 「エラー 3 fatal error C1113: #using が 'd:\xxx\manageddllapp.dll' で失敗しました。 」と、Dllでエラーが出ます。 よろしくお願いいたします。

  • 新しいクラスを作りたい(C++/CLI)

    環境 Visual Stuio 2005 C++/CLI 既存のクラスを継承して新しいクラスを作りたいのですが、VS2005での操作方法が分からず困っています。 具体的な内容は、RichTextBoxを継承して、ある機能に特化したエディタを作りたいのです。 新しいクラスは汎用性があるため、Cでは、.hと.libで公開していたような、そのようなソース以外の形で他のプログラムに組み込むスタイルにしたいのですが、方法をご存知の方がいらっしゃいましたら教えていただきたいと思います。

  • C++/CLIからC++の呼び出しで例外

    お世話になります。 C#からC++のNativeコード(unmanaged)を呼び出したいと思い、C++/CLIでラッパーを作りました。 そのラッパーのクラス内で、C++で書かれたNativeコードのクラスのインスタンスを作成する時に例外が発生してしまいます。 例外はこんな感じです。 System.Runtime.InteropServices.SEHException はハンドルされませんでした。 Message="外部コンポーネントが例外をスローしました。" Source="ManMovLib" ErrorCode=-2147467259(0x80004005) StackTrace: 場所 new(UInt32 ) C++/CLIは以下の様なコードで、コンストラクタ内でC++のクラスの実体を作っています。そして、このnewで例外が発生します。 AVSource::AVSource(void) {   m_pObj = new CAVSource; } C++側は、実は何もしていません。 CAVSource::CAVSource(void) { } そして、色々と試行錯誤をした結果、C++側のクラスにvirtual関数があると、例外が出てしまうという事実を突き止めました。 ただ、どこを調べても、virtual関数を用いてはいけないとは書いてありません。 実際、virtualを使ってはいけないという制約があるのでしょうか? また、何かNativeのコードを作成する際に注意点とかありますでしょうか? ちなみに、プロジェクトの設定で、Nativeコードのデバッグを可能にするチェックをつけてデバッグ実行すると、何故かこの例外は発生せずに、全て正常に動きます。これもなぞです。 よろしくお願いします。

  • C++/CLIで作ったDLLが読み込めない。

    現在、Visual Studio 2010を使い、 C++/CLIで作ったDLLを、C#から呼び出すプログラムを作成しております。 Visual Studioのデバッグでは、正常に動作するのですが、 IISに設定してブラウザから確認しようとすると、 「ファイルまたはアセンブリ 'wrap.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたモジュールが見つかりません。」 というエラーが出てしまいました。 下記のサイトなどを参考に、 「ソリューションを1つにして参照設定する」、 「Releaseモードにする」などと実施してみましたが、 解決するには至っておりません。 http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/23fd794a-7d8a-4153-9e1e-0358c38a84eb この原因と対処法に関して、ご助言頂きたいと思います。 宜しくお願いします。

  • 【C++/CLI】enumの値を使用するとデザイナが読み込めなくなる

    VC++2005の.NETにてアプリを作成しています。言語はC++/CLIです。 data.hに下記のような定義をしています。 【data.h】 namespace A { namespace B { enum class Hoge { aaa, bbb }; } } これを、Form1.hからヘッダファイルをインクルードして使用したいのですが、 下記のように記述すると、ビルド実行は可能なのですが、デザイナが読み込めなくなってしまいます。 【Form1.h】 #include "data.h" ・・・ using namespace A::B; ・・・ int hoi = (int)Hoge::aaa; //これを記述すると、デザイナが読み込めなくなる ・・・ この現象について、何か私の使用方法が間違っているのでしょうか? C++/CLI初心者のため、このようなことでつまづいてしまっています。 解決法をご存知の方おられましたら、ご教示お願い致します。 【デザイナのエラー内容】 デザイナの読み込み時に 1 つ以上のエラーが発生しました。エラーは以下に一覧表示されます。コードの変更が必要なエラーもありますが、プロジェクトを再度ビルドすると解決できるエラーもあります。 フィールド 'aaa' がターゲット オブジェクトで見つかりませんでした。フィールドがターゲット オブジェクトのインスタンス変数として定義され、また正しいスコープを含んでいることを確認してください。

  • C++/CLIでfstream(.NET 3.5)

    過去の資産にアクセスするためにC#から使うクラスライブラリをC++/CLIで作成しています。 当初は.NET Framework 4.5で作成していたのですが、Windows7でFrameworkを追加するのが面倒くさいという事で、3.5でプロジェクトを起こし直してコンパイルしました。 そうしたところ、大量のリンクエラーが発生しました。 --抜粋(下記を含め、合計18行のエラー) VCMRTD.lib(locale0_implib.obj) : error LNK2034: metadata は、COFF シンボル テーブルと整合しません: LINK : error LNK2034: metadata は、COFF シンボル テーブルと整合しません MSVCMRTD.lib(locale0_implib.obj) : error LNK2020: 未解決のトークン (0A0000A1) "extern "C" double __cdecl _hypot(double,double)" (?_hypot@@$$J0YANNN@Z) -- 調査した結果、fstream関連を定義するとこの症状が出る事がわかりました。 そこで、単純に以下のプロジェクトを作成したところ、同じ現象が発生しました。 1..NET Framework 3.5でCLRクラスライブラリのプロジェクトを作成する(ここではTESTプロジェクト) 2.作成されたテンプレートの「TEST.h」に関数を追加する -----(TEST.h) // TEST.h #pragma once #include <fstream> using namespace System; namespace TEST { public ref class Class1 { void test() { std::fstream f; } }; } ---- 3.コンパイル → リンクエラー 標準関数はいくつか使っているのですが、fstream系だけがダメなようです。 (sstreamはOKでした) これに関して、何か対策方法はないものでしょうか。 情報があればお教え下さい。 よろしくお願いいたします。 開発環境: Windows 8.1 VisualStudio 2013 Pro

  • c++でxpath指定でXML

    c++でプログラミングを学んでいます。 XMLを使って設定ファイルを作ろうと思っています。 プログラム側で、あらかじめどのようなフォーマットのXMLかは知っているので、 ルートからのxpathを文字列で指定して要素を読みに行きたいのですが、 どのライブラリがこれを出来るのかわからない(1)、 また、サンプルが見付からない(2)、 ので困っています。 (1)と(2)について教えてください。★ (1)については、XercesとXalanとlibxml2が出来そう?、 (2)については直接指定のサンプルを全くみつけられていない、というところです。 (ソースコードについてくるサンプルでも直接指定は見つけられていなくて、複雑だと読めなくて困ってます。) (出来そうだという書き込みは、日本語圏・英語圏でちらほら見られる。) 因みに、boost::property_treeで読もうと思ったりしましたが、属性を検索キーにする必要があって、xpathが利用できないと複雑なプログラムを書かないとならないので、やめました。 そこまでするならXMLのフォーマットを変えよう→XMLの意味が無い→何としてもxpath、と…。 よろしくお願いします。

  • C++はじめようと思います

    はじめまして前からC++に興味があったのでC++お始めようと思い VisualC++2005ExpressEditionをインストールしました そして簡単なプログラムをビルドしたんですが LINK : fatal error LNK1104: ファイル 'gdi32.lid' を開くことができません となりプログラムミスかな?と思いサンプルのデータソースでも実行しましたが同じ結果でした自分ではこのエラーの意味が分かりませんわかる方教えてください OS Win XP SP2 Home