- ベストアンサー
c#ビルド直前にコードを置換できますか?
- c#初心者による質問です。ビルド直前にコードの置換を行うことは可能でしょうか?例えば、「class 見本クラス」としておいて、ビルド直前に「見本クラス」を「SampleClass」に置換することはできるのでしょうか?詳しい方のアドバイスをお願いします。
- c#初心者の質問です。ソースコードのビルド直前に「見本クラス」を「SampleClass」に置換することは可能でしょうか?アドバイスをいただけると助かります。
- c#初心者が質問です。ビルド直前にコードを置換する方法を教えてください。例えば、「class 見本クラス」をビルド直前に「見本クラス」を「SampleClass」に置換することはできるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- duke_kimura
- ベストアンサー率39% (53/134)
関連するQ&A
- オブジェクトコードについて
コンパイル言語について質問です。 コンパイルされるタイミングはいつなのでしょうか? 現在javaでwebアプリを作成中なのですが、 tomcatに置いたタイミングでclassファイルがオブジェクトコードにコンパイルされているのでしょうか。 それとも、リクエストが来てそのクラスが必要になったときでしょうか。
- ベストアンサー
- Java
- 正規表現を使った置換処理。大文字の直前に「_」を入れたい
正規表現を使った置換処理です。 大文字の直前に「_」を入れたいと思っています。 例:htmlLinkStr → html_Link_Str WSHとして以下のようなコードを1行記述しました。 WScript.Echo("htmlLinkStr".replace(/([A-Z]+)/g, "_" + RegExp.$1)); しかし「html_ink_tr」としょぼい結果しかえられません。 「RegExp.$1」の使い方が悪いのかもしれません…。 ちなみにVBSでは以下のコードで成功しています。 ので大きくはずしてはいないと思うのですが… Set regEx = New RegExp regEx.Pattern = "([A-Z]+)" regEx.Global = True MsgBox regEx.Replace("htmlLinkStr", "_$1") JavaScriptでの正規表現の使い方に詳しい方よろしくお願いします。
- ベストアンサー
- JavaScript
- C#のビルド方法について質問です。
IDEをつかわず、コマンドプロンプト上でC#のソースをビルドする時の方法について質問です。 まず以下のようなコードがあるとします。 まずC:\の直下に以下のソースを作成しました。 =================================================== using System; using System.IO; using System.Windows.Forms; namespace Add.TestClass{ public class LibraryClass{ public LibraryClass(){ MessageBox.Show("クラスライブラリコンストラクタの実行"); } } } =================================================== 上記クラスをdllファイルとしてビルドします。 csc /t:library /out:Add.TestClass library.class と上記のようにビルドしました。するとAdd.TestClass.dllというファイルが確かにできあがりました。 次にこれを実際に実行するためのファイルをつくりました。 それが以下になります。 同じくC:\直下に以下のようなソースを作成します。 =================================================== using System; using System.IO; using System.Windows.Forms; using Add.TestClass; public class MainClass{ public static void Main(String [] args){ LibraryClass obj = new LibraryClass(); } } =================================================== このファイルをビルドします。 csc /r:Add.TestClass.dll main.cs としてビルドし、その後 mainというファイルを実行しました。 するとキチンとMessageBoxで MessageBox.Show("クラスライブラリコンストラクタの実行");が実行されました。 ここまでは問題ないのですが、この場合 main.exeファイルとAdd.TestClass.dllというファイルが 同じ階層に存在するような状態になっているのですが、これを main.exeファイルのある階層にdllというディレクトリを作成し そのdllの中にAdd.TestClass.dllというファイルをおいた階層状況でmain.exeファイルを実行したいのです。 そのためにまず、 csc /r:”C:\dll\Add.TestClass.dll" main.cs 上記のようなビルドオプションでビルドしてみたのですが、ビルドはとおりましたが -------------------------------------------------------------------------------------------------------------------- ハンドルされていない例外: System.IO.FileNotFoundException: ファイルまたはアセン ブリ 'Add.TestClass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'、ま たはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりませ ん。 場所 MainClass.Main(String[] args) -------------------------------------------------------------------------------------------------------------------- というエラーがでました。 このdllファイルを特定の任意のディレクトリ内において、main.exeを実行してうまく動くようにするためには どのようなビルドオプションをつけたらいいのでしょうか? よろしくご教授お願いいたしま。
- ベストアンサー
- Microsoft ASP
- VisualStudio2008でフォルダ違いで同じソースコードファイ
VisualStudio2008でフォルダ違いで同じソースコードファイル名 下記のようにフォルダ違いで同じファイル名のソースコードがるある場合は、 VisualStudio2008では認識してくれないのでしょうか? +type0+Type.h | +Type.cpp +type1+Type.h +Type.cpp それぞれのソースコードはクラス名も一緒なのですが、namespaceでわかられています。 namespace NType0 { class CType { } namespace NType1 { class CType { } 後から追加したType.cppでは意図的にCTypehogehoee::関数名として コンパイルエラーが起きるように記述しましたがVisualStudioはエラーを 吐きません。 ファイル名をユニークにしたところ正常にビルドできました。 上記について問題を解決する方法はあるのでしょうか?
- ベストアンサー
- C・C++・C#
- VBScriptを用いた改行コードを含む置換方法について
お世話になります。 VBScript初心者です。 下記の通り、VBスクリプトを用いてファイルの文末の「カンマカンマ改行」を 「改行」に置換したいと思っていますが、上手くできません。 VBScriptで正規表現を用い、改行コードを含んだ置換方法を教えていただきたく思います。 【置換前】 AA00001,プリン,AA00001,AA00000xxxx.xxx.xx.xx,,,○,, 【変更後】 AA00001,プリン,AA00001,AA00000xxxx.xxx.xx.xx,,,○ 現在のスクリプトは、 myStr1 = "AA00001,プリン,AA00001,AA00000xxxx.xxx.xx.xx,,,○,," '(1)RegExp オブジェクトを作成する Set objRE = New RegExp '(2)検索パターンを設定 objRE.Pattern = ",+\n" '(3)大文字/小文字を区別しない objRE.IgnoreCase = True '(4)全体を検索 objRE.Global = True '(5)置換を実行 myStr2 = objRE.Replace(myStr1,"\n") '(6)一行書込み objFile.WriteLine(myStr2) となっています。(部分的に抜粋しましたが各変数の定義はできています) (2)の検索パターンに",+\n"、(5)の置換を実行に"\n"を定義しましたが置換できませんでした。 他のパターンとして (2)の列に",+\x0A"、(5)の列に"\x0A" (2)の列に",+\x0d"、(5)の列に"\x0d" も行ってみましたが置換できませんでした。 なお、置換対象のファイルはtxtファイルまたはCSVファイルを考えています。 どなたかご教示いただきたく、よろしくお願い致します。
- ベストアンサー
- Windows XP
- C++ クラスをメンバにもつクラスについて
お世話になります。C++初心者でうまくコードが書けません(><) クラス1と2があり、クラス1のメンバにはクラス2があります。 メインでクラス1をインスタンス化してクラス2のfunc2を呼び出します。 func2ではクラス1のインスタンスから呼び出された場合にクラス1の m_int1を取得します。 Class Class1{ public: int m_int1; Class2 m_Class2; }; Class Class2{ public: void func2(); }; void Class2::func2(){ /*ここの記述方法が分かりません*/ /*C1から呼び出されたらC1のm_int1に100を入れる*/ /*以下間違え*/ class1 C2_1;/*別のclass1のオブジェクトなのでこれに入れてもダメっぽい*/ C2_1.m_int1 = 100; } void main(){ class1 C1; C1.m_int1 = 10; C1.m_class2.func(); } C1.m_class2.func()の中から呼び出したC1にアクセスする方法が 分かりません(TT)。実体がまだあるのだからアクセスする方法は あると思うのですが・・・ どなたかよろしくお願いします。
- ベストアンサー
- C・C++・C#
- C++ビルドエラー
VC++6.0コードを変更をしないでVS 2008 C++(Professional Edtion)でビルドするとコンパイルはパスしますが、2件のワーニングがでます。 Win VistaでVS 2008 SP1のコンディションです。 アドバイスをくれませんか? 1. warning C4996: 'CWinApp::Enable3dControlsStatic': CWinApp::Enable3dControlsStatic is no longer needed. You should remove this call. #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(4821) : 'CWinApp::Enable3dControlsStatic'の宣言を確認して ください。 >クラスに新しい定義が必要ですか? 2. warning C4244: '=' : 'ULONGLONG' から 'LONG' への変換です。データが失われる可能性があります。 LONG lSize = 0L; // ヘッダ部を読み込みます。 TRY { lSize = m_pCFile->Seek( 0L, CFile::end ); m_pCFile->SeekToBegin(); . . >修正がわかりません。 以上
- ベストアンサー
- C・C++・C#
- シンボルを解決できません(初心者)
一つのプログラムに対して、いくつかのファイルに分けて 記述されているとき、 たとえば、ファイル A.java と B.java があって 【A.java】 package shop; ・ ・ public class Shop { ・ ・ ・ } 【B.java】 packeage shop; ・ ・ public class Buy(Shop shop){ } という感じで、A.java内で定義したクラス型を他のファイルで使うと、 コンパイル時に、「シンボルを解決できません」というコンパイルエラーが出て コンパイルできません。 こういう場合はどうすれば、良いのでしょうか? 初心者なので、非常に初歩的な質問かと思いますがよろしくお願いします。
- ベストアンサー
- Java
- C#プログラムファイルの文字コード
まず http://okwave.jp/qa/q8592830.html 上記内容で、スクリプト言語のスクリプトファイルの文字コードの質問をしたものです。 PHPやunixシェルは内部的に文字コード情報をもたたず すべての文字列をバイト列として保持しており pythonでは,文字列は内部的にオブジェクトが文字エンコーディング情報を持つ必要があるため事前にマジックコメントでスクリプトエンジンに教えてやる必要がある・・と 回答をいただきました。 それではたとえばjavaに置き換えると javaはコンパイルすると文字列をすべてunicodeのコードポイントに変換するようです。 そのためjavaのソースファイルをコンパイルするときに javac -encodingというコンパイルオプションがあるようです。ここで指定された文字コードからunicodeへと変換されていると・・・・。 ではC#はどうなのでしょうか? cscコンパイラのコンパイルオプションには文字コードを指定するようなオプションは見つかりませんでした。 しかし using System; using System.Windows.Forms; namespace test{ class AClass{ public string property = ""; public AClass(){ } } class TestClass{ public static void Main(string [] args){ AClass obj = new AClass(); obj . property = "文字列 "; Console.WriteLine(obj. property); MessageBox.Show(obj.property); } } } 上記のようなコードをUTF-8およびSJIS-winでそれぞれ保存して、コンパイル後実行しても 文字化けすることなく「文字列」という表示がされました。 ただし、EUC-JPで保存したファイルをコンパイルすると、なんと文字化けしてしましまいました。 これはなぜでしょうか? C#コンパイラはどこでどのようにコンパイル対象のプログラムファイルの文字コードを知り得ているのでしょうか? そしてなぜ、UTF-8/SJIS-winは問題なく文字列と表示されたにもかかわらず EUC-jpだと文字化けしたのでしょうか? よろしくご教授ください。 ちなみにC#のコンパイラはコマンドプロンプロトから直接CSC.exeを実行しています。
- ベストアンサー
- Java
お礼
回答ありがとうございます。おかげさまで何とかなりました。