前提
C#の学習を始めたばかりの初心者です。
低スペックなPCしか持っておらず動作が重い上CPUの負荷を考えてIDEを使っていません。
現在、開発者用コマンドプロンプト(以下cmdと記載します)上で、csc.exeを用いてコンパイルを行っています。
そこで、複数のソースファイル(以下、ソースと記載します)があるとき、cmdでコンパイルする方法はありますでしょうか。
#実現したいこと
・やりたい事はクラスが書かれたソースと、エントリーポイントが書かれたソースが
個別であってもcmd上でビルドを完結させる事です。
(CやC++における、「 cl /c 」で.objファイルを作成 →
「 link 」 を使って実行ファイルを作成、のような方法があるのかどうかです。)
・同一ソースに書けばビルド自体はできる事は承知の上で、個別にソースがある状態での方法の有無を知りたいです。
##調べたこと・試したこと
■クラスが書かれたソースを.dllにしてそれをDllImportを用いて読み込もうとしました。
・ファイル名
エントリーポイントのあるソース : a.cs
クラスを定義したソース : b.cs
・b.dllを生成
csc.exe -target:library b.cs
・a.csに下記コードを追記
html
1using System.Runtime.InteropServices; 2public partial class DllImport : System.Windows.Forms.Form 3{ 4 [DllImport("b.dll"] 5 public static extern int add(int a, int b);//b.cs内で定義した関数名 6}
###発生したエラー
html
1a.cs(b.dll定義のクラスの変数を宣言した行): error CS0246: 2型または名前空間名 'Calc' が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足しています。
'Calc'はb.csで定義したクラスの名前です。
そもそもdllImportではWind32APIやC等で作成関数を呼びだす事は出来ても、
クラスは呼びだせないし、その為クラスのメンバ関数も呼び出せないという事でしょうか。
だとしたらやりたい事と方法が全くちぐはぐですね、すみません。
何か、C#の言語特性を全く理解してないようなちぐはぐな発想だったり、
既出だとか情報不足、或いは調査不足でしたらすみません。
VSを使えと言われたら最もなのですが、何卒よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/12 03:46
2019/03/12 04:09
2019/03/12 04:19
2019/11/24 04:01