teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

NuGetをダウンロードした場所を定義

2021/08/12 02:44

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -152,4 +152,6 @@
152
152
  + subディレクトリ
153
153
  + MainForm.cs
154
154
  + (ここからコンパイルしたりしている)
155
- ```
155
+ ```
156
+
157
+ ※ NuGet は [ここ](https://docs.microsoft.com/ja-jp/nuget/consume-packages/install-use-packages-nuget-cli)からダウンロードしました。

6

追記3

2021/08/12 02:44

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -52,4 +52,104 @@
52
52
  皆様ありがとうございます。
53
53
  今すぐには試せない環境で、調べてみるとDLLのアクセスが必要であることがわかったため、その使い方を一旦学んでから今回の質問を閉じる事にします。
54
54
 
55
- (今回初めてNuGetと言うものを使いましたのでちょっと手間取っています……)
55
+ (今回初めてNuGetと言うものを使いましたのでちょっと手間取っています……)
56
+
57
+ ----------------
58
+
59
+ [追記3]
60
+
61
+ CommonSaveFileDialogをやってみました。
62
+
63
+ NuGetで 適当なところに Microsoft.WindowsAPICodePack.dll をDLし、
64
+ net48ディレクトリに入っている Microsoft.WindowsAPICodePack.dll を
65
+ 今回のプロジェクトの、VC#等でいうReleaseディレクトリ内に相当する場所( binディレクトリ ) に配置。
66
+
67
+ そして、Cygwin上で
68
+
69
+ ```
70
+ C:/Windows/Microsoft.NET/Framework/v4.0.30319/csc /nologo -reference:./bin/Microsoft.WindowsAPICodePack.dll /target:winexe /out:.\bin\Main.eXe .\src\main.cs .\src\sub\MainForm.cs
71
+ ```
72
+
73
+ とコンパイルしました。
74
+
75
+ コードは、
76
+
77
+ ```C#
78
+ using System;
79
+ using System.Windows.Forms;
80
+
81
+ using Sample.Forms;
82
+
83
+ using Microsoft.WindowsAPICodePack;
84
+ using Microsoft.WindowsAPICodePack.Dialogs;
85
+
86
+ namespace Sample{
87
+ class EntryPoint{
88
+ [STAThread]
89
+ static void Main( string[] args ){
90
+ try{
91
+ // メインウィンドウの生成と起動
92
+ Application.Run( new MainForm( args ) );
93
+
94
+ CommonSaveFileDialog dialog = new CommonSaveFileDialog();
95
+
96
+ // ここで処理する
97
+
98
+ }catch( System.Exception err ){
99
+ MessageBox.Show( err.Message, "例外発生" );
100
+ }
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ としました。
107
+
108
+ すると、
109
+
110
+ ```
111
+ src\main.cs(17,17): error CS0246: 型または名前空間名 'CommonSaveFileDialog' が見つかりませんでした。using
112
+ ディレクティブまたはアセンブリ参照が不足しています。
113
+ src\main.cs(17,51): error CS0246: 型または名前空間名 'CommonSaveFileDialog' が見つかりませんでした。using
114
+ ディレクティブまたはアセンブリ参照が不足しています。
115
+ make: *** [makefile:69: .\bin\Main.eXe] Error 1
116
+ ```
117
+
118
+ とエラーを吐きます。
119
+
120
+ ちなみに sub\MainForm.cs に書こうとすると usingディレクティブを追加しただけで下記のエラーを吐きます。
121
+
122
+ ```
123
+ src\sub\MainForm.cs(8,17): error CS0234: 型または名前空間名 'WindowsAPICodePack' は名前空間 'Microsoft'
124
+ に存在しません。アセンブリ参照が不足しています。
125
+ make: *** [makefile:72: .\bin\Testor.eXe] Error 1
126
+ ```
127
+ と出ます。
128
+
129
+ DLLのファイル名自体に "." を含んでいるためかと思い、
130
+ ./bin/WindowsAPICodePack.dll
131
+ のようにしてみましたが変わらず。
132
+
133
+ "/" がスイッチと解釈されているのかと思い、(コンパイル時に) -reference:.\bin\WindowsAPICodePack.dll のようにしてみましたが、
134
+ それでも変わらず。
135
+
136
+ メッセージ的には「名前空間が違う」か「(usingしている)名前空間が足りない」的な意味でしょうけど、
137
+ 「WindowsAPICodePack CommonSaveFileDialog」と検索しても
138
+
139
+ ```
140
+ using Microsoft.WindowsAPICodePack;
141
+ ```
142
+
143
+ を追加しろ…とだけなので……
144
+
145
+ [構成]
146
+ ```
147
+ + binディレクトリ
148
+ + WindowsAPICodePack.dll
149
+ + (ここに実行ファイルが生成される)
150
+ + srcディレクトリ
151
+ + main.cs
152
+ + subディレクトリ
153
+ + MainForm.cs
154
+ + (ここからコンパイルしたりしている)
155
+ ```

5

追記3

2021/08/12 02:37

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -44,4 +44,12 @@
44
44
 
45
45
  一応、別途用意すること自体は頭の片隅にありましたが、ユーザー目線で考えると煩わしいかなぁと思ったので今回の質問に至りました。
46
46
 
47
- (説明下手ですみません…)
47
+ (説明下手ですみません…)
48
+
49
+ --------------
50
+
51
+ [追記3]
52
+ 皆様ありがとうございます。
53
+ 今すぐには試せない環境で、調べてみるとDLLのアクセスが必要であることがわかったため、その使い方を一旦学んでから今回の質問を閉じる事にします。
54
+
55
+ (今回初めてNuGetと言うものを使いましたのでちょっと手間取っています……)

4

2021/08/10 05:29

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  C#のSystem.Windows.Forms.SaveFileDialogを使ってテキストファイルを保存するときに、
4
4
  Windows付属のメモ帳のような『文字コード』をユーザが指定できるようにしたいのですが、これは可能でしょうか。
5
5
 
6
- メモリ等の関係上、VC#を入れることができず、csc.exeで直接コンパイルしています。
6
+ メモリ等の関係上、VC#を入れることができず、csc.exeで直接コンパイルしています。(オンラインすらできない…)
7
7
 
8
8
  なのでCommonFileDialog等は使えません。
9
9
 

3

2021/08/09 09:51

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -21,6 +21,7 @@
21
21
  言語: C#
22
22
  .NET Framework: 4.0
23
23
  コンパイラ: csc
24
+ **種類: WinForm**
24
25
 
25
26
  -----
26
27
 

2

2021/08/09 09:44

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -35,4 +35,12 @@
35
35
 
36
36
  公式でプロパティを調べてもそれらしきものすら見当たらず…
37
37
 
38
- あのコンボボックスとかの部分でユーザに選択させたいのですが、これって無理でしょうか?
38
+ あのコンボボックスとかの部分でユーザに選択させたいのですが、これって無理でしょうか?
39
+
40
+ -----
41
+
42
+ [追記2]
43
+
44
+ 一応、別途用意すること自体は頭の片隅にありましたが、ユーザー目線で考えると煩わしいかなぁと思ったので今回の質問に至りました。
45
+
46
+ (説明下手ですみません…)

1

2021/08/09 08:23

投稿

BeatStar
BeatStar

スコア4962

title CHANGED
File without changes
body CHANGED
@@ -20,4 +20,19 @@
20
20
  [情報]
21
21
  言語: C#
22
22
  .NET Framework: 4.0
23
- コンパイラ: csc
23
+ コンパイラ: csc
24
+
25
+ -----
26
+
27
+ [追記1]
28
+
29
+ 失礼しました。
30
+
31
+ イメージとしては[こちら](https://atmarkit.itmedia.co.jp/ait/spv/2009/11/news016.html)にある、画像の『文字コード(E):』の部分です。
32
+
33
+ C#のSaveFileDialogを使ってみると文字コード指定できるComboxがありません。
34
+ (まあ、WinAPIでもそうだけど)
35
+
36
+ 公式でプロパティを調べてもそれらしきものすら見当たらず…
37
+
38
+ あのコンボボックスとかの部分でユーザに選択させたいのですが、これって無理でしょうか?