土壷にハマってしまった.完全に足が止まってしまっている.何とかしなくては.何をどうすればよいか?boostはすでに止めてある.あとは,C++ → CLI → C# を繋げればよいというだけなのだが… 実際,ゼルコバの木では昔からやっていることだ.何がどうまずいのか?確かにC#は今回始めてだが,基本的にはVB.NETとコンパチと考えられるからそれほど高い障壁になるとも思われない.わたしもいよいよヤキが回ったか?
C++で「重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー C2338 2 フェーズの名前参照は、C++/CLI または C++/CX ではサポートされていません。/Zc:twoPhase- を使用してください ElsieComeBack D:\準同型検定CS\ElsieComeBack\c1xx 1 」が出ている.
ようやく通った.ここまで来れば,あとはもうもらったようなものだ.⇒ようやく動いたと思ったのも束の間,またエラーが出てしまった.
▲ELSIEのコマンド2を実行して例外が発生した.
ELSIEはもともとコンソールアプリとして開発されていて,コンソール入出力なしでは実行はほとんど不可能だ.たとえば,ファイル名の入力を促すプロンプトが出て,ファイル名を受け取ったあと,処理の結果をダンプするなどの動作になっている.ファイル名が無効なら例外をスローするような作りになっているから,例外は当然のように発生する.フォームとコンソールを併用するか,ないしフォームでコンソールを代用するようなことはできないのだろうか?⇒不可能ではないかもしれない.コンソールアプリからフォームを開くことはできそうだ.
using System.Windows.Forms;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
プロジェクトのプロパティを変更し,
- アプリケーションの種類(A)をコンソールアプリケーションにする
- スタートアップオブジェクト(O)を Sub Main にする
ことで実現できる.これはやってみる価値はあるのではないだろうか?ELSIEの中身をすべてC#で書き換えるというのは現実的ではない.